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

现有test表,表结构如下:

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

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

time goods num LastTime

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

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

上次交易日期而不是最新日期
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

 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