2 haiktao Haiktao 于 2016.04.29 08:34 提问

SQL怎么查询上次交易日期呢?

现有test表,表结构如下:

time goods num
2014/5/9 内存条 20
2014/4/28 硬盘 17
....../*海量数据*/
2013/7/2 内存条 18

怎么用表自连接的方法查询出上次交易的时间呢?
结果表是这样的:

time goods num LastTime

如果数据量太大,不能用表自连接方法,还有其它方法吗?

新人刚入行,虚心请教学习,感谢了~~~

3个回答

huangwenkangz
huangwenkangz   2016.04.29 16:38
已采纳

上次交易日期而不是最新日期
select a.test.time,a.goods,a.num,(select max(b.time) from test b where b.time <a.time and b.goods=a.goods group by b.goods) LastTime from test a

Haiktao
Haiktao 感谢帮助!发现group by应该可以省略吗?还是有其它用途呢? 请问还能用其它方法解决这个问题吗?对数据量大的表用这个方法会不会很慢呢?
一年多之前 回复
CSDNXIAON
CSDNXIAON   2016.04.29 08:41

sql 对日期查询
sql的日期查询
SQL按日期来查询
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

danielinbiti
danielinbiti   Ds   Rxr 2016.04.29 09:14
 select test.time,test.goods,test.num from test,(select goods,max(time) LastTime from test group by goods) a
 where test.goods=a.goods
Csdn user default icon
上传中...
上传图片
插入图片