SQL 查询语句问题,请各位指教。

商品当日价格表Table中有属性id,Date,price,主键为(id,Date),求商品当日
价格和前一交易日涨幅。原本我自己写的如下:
select t1.id,t1."Date",((a.price-b.price)/b.price
from ASX a,ASX b
where b."Date" = a."Date"-1 and a.Code = b.Code;
后来发现某一商品并不一定连续每天都出售,例如1号2号出售,5号6号出售但是3号4号没有开卖,所以不能直接取a."Date"-1,应该怎么表示a."Date"的上一个出售日。求各位指教

按时间排序order by date,top(2),取最前的两个,比较就可以了

你desc排序时间然后取前两个,完美解决。

分开算,先用desc取出最近两天的价格,然后计算涨幅

这个需要注意的一点就是你数据库里日期列的格式,一定要是DATE格式的才可以用order by xxx desc来解决,如果是字符串格式的话,就不能用desc了,
因为2016/9/10一定大于2016/10/10号,会出错,如果是字符串格式,就一定要求数据库里日期列的格式为yyyy/MM/dd格式,然后用desc就没有问题了