获取最新价格 SQLITE
Get the latest price SQLITE
我有一个 table,其中包含 _id、underSubheadId、wefDate、价格。
每当创建产品或编辑价格时,也会在此 table 中创建一个条目。
我想要的是,如果我输入一个日期,我会在该日期之前获得所有不同 UnderSubheadIds 的最新价格(如果没有找到条目,则在该日期)
_id underHeadId wefDate price
1 1 2016-11-01 5
2 2 2016-11-01 50
3 1 2016-11-25 500
4 3 2016-11-01 20
5 4 2016-11-11 30
6 5 2016-11-01 40
7 3 2016-11-20 25
8 5 2016-11-15 52
如果我输入 2016-11-20 作为日期,我应该得到
1 5
2 50
3 25
4 30
5 52
我已经在 SQL SERVER 中使用 ROW NUMBER 函数获得了结果,但是我想要在没有这样的函数的 Sqlite 中得到这个结果。
此外,如果输入像 2016-10-25(没有条目)这样的日期,我想要第一个日期的价格。
与 1 一样,我们将获得最接近的价格 5,第一个条目是 2016-11-01。
这是对 SQL SERVER 的查询,工作正常。但是我想要它用于没有 ROW_NUMBER 函数的 Sqlite。
select underSubHeadId,price from(
select underSubHeadId,price, ROW_NUMBER() OVER (Partition By underSubHeadId order by wefDate desc) rn from rates
where wefDate<='2016-11-19') newTable
where newTable.rn=1
谢谢
这有点棘手,但这是一种方法:
select t.*
from t
where t.wefDate = (select max(t2.wefDate)
from t t2
where t2.underSubHeadId = t.underSubHeadId and
t2.wefdate <= '2016-11-20'
);
select underHeadId, max(价格)
从T
其中 wefDate <= "2016-11-20"
按 underHead 分组;
我有一个 table,其中包含 _id、underSubheadId、wefDate、价格。 每当创建产品或编辑价格时,也会在此 table 中创建一个条目。 我想要的是,如果我输入一个日期,我会在该日期之前获得所有不同 UnderSubheadIds 的最新价格(如果没有找到条目,则在该日期)
_id underHeadId wefDate price
1 1 2016-11-01 5
2 2 2016-11-01 50
3 1 2016-11-25 500
4 3 2016-11-01 20
5 4 2016-11-11 30
6 5 2016-11-01 40
7 3 2016-11-20 25
8 5 2016-11-15 52
如果我输入 2016-11-20 作为日期,我应该得到
1 5
2 50
3 25
4 30
5 52
我已经在 SQL SERVER 中使用 ROW NUMBER 函数获得了结果,但是我想要在没有这样的函数的 Sqlite 中得到这个结果。 此外,如果输入像 2016-10-25(没有条目)这样的日期,我想要第一个日期的价格。 与 1 一样,我们将获得最接近的价格 5,第一个条目是 2016-11-01。
这是对 SQL SERVER 的查询,工作正常。但是我想要它用于没有 ROW_NUMBER 函数的 Sqlite。
select underSubHeadId,price from(
select underSubHeadId,price, ROW_NUMBER() OVER (Partition By underSubHeadId order by wefDate desc) rn from rates
where wefDate<='2016-11-19') newTable
where newTable.rn=1
谢谢
这有点棘手,但这是一种方法:
select t.*
from t
where t.wefDate = (select max(t2.wefDate)
from t t2
where t2.underSubHeadId = t.underSubHeadId and
t2.wefdate <= '2016-11-20'
);
select underHeadId, max(价格) 从T 其中 wefDate <= "2016-11-20" 按 underHead 分组;