我有一个表,每日更换的产品的价格,可以说TSQL加入的列具有不同值
价格(INT的productID,价格浮动,dateprice日期时间)。
这些价格在周末不存在,所以并不是所有的天价都在桌上。
我想要一个productId,day,todayPrice,yesterdayPrice的结果(显然第一个日期不会出现在这个结果上,因为它没有前一天)。我认为像这样的加入会给我我想要的,但不起作用。
select p1.productId, p1.dateprice, p1.price, p2.price
from price p1
inner join price pr ON pr.productId = p1.productId
inner join price p2 ON p1.dateprice = (select max (p.dateprice)
from price p
where p.dateprice < p1.dateprice)
这个选择返回一个空的结果,但如果我用“=”,而不是“<”返回我有许多相同的行表(如预期)。
你如何建议我选择这些信息?
你没有引用'p2'你'ON'子句。 – HABO 2012-02-09 22:53:22
编辑之后...我不确定'pr'有什么用。为什么从'p1'连接到'pr'? – 2012-02-09 23:01:37