mssql2000 最近数据行
视图内容:VIEW_GOODSSTORE
goodsid,billdate,STOREID,STORESTATEID
74 ,2011-2-19, 11, ,104
74 ,2011-6-14, 11, ,104
78, 2011-11-11, 12, , 33
91 ,2011-6-19, 11, ,104
91 ,2011-6-19, 11, ,105
91 ,2011-6-19, 11, ,106
结果:
当goodsid相面时,取最大日期的行 (取出来后不要重复的)
goodsid,billdate,STOREID,STORESTATEID
74 ,2011-6-14, 11, ,104
78, 2011-11-11, 12, , 33
91 ,2011-6-19, 11, ,106
------最佳解决方案--------------------
早知道我答了算了。
SELECT *
FROM VIEW_GOODSSTORE a
WHERE EXISTS ( SELECT 1
FROM ( SELECT MAX(billdate) billdate ,
goodsid
FROM VIEW_GOODSSTORE
GROUP BY goodsid
) b
WHERE a.billdate = b.billdate
AND a.goodsid = b.goodsid )
------其他解决方案--------------------
select * from VIEW_GOODSSTORE a
where not exsits(select 1 from VIEW_GOODSSTORE where goodsid=a.goodsid and billdate>a.billdate)
------其他解决方案--------------------
SELECT goodsid,max(billdate),max(STOREID),max(STORESTATEID)
from VIEW_GOODSSTORE
group by goodsid
------其他解决方案--------------------
运行有如下提示:
服务器: 消息 156,级别 15,状态 1,行 2
在关键字 'select' 附近有语法错误。
服务器: 消息 170,级别 15,状态 1,行 2
第 2 行: ')' 附近有语法错误。
------其他解决方案--------------------
SELECT *
FROM VIEW_GOODSSTORE a
WHERE NOT EXISTS ( SELECT 1
FROM VIEW_GOODSSTORE