我现在有一个表,如下
日期 物料代码 数量
2009-01-01 A001 10
2009-01-15 A001 16
2009-01-20 A001 9
2009-01-01 A002 20
2009-01-15 A002 45
2009-01-20 A002 32
我想得到的结果是:
日期 物料代码 数量 标识
2009-01-01 A001 10
2009-01-15 A001 16
2009-01-20 A001 9 还可领料
2009-01-01 A002 20
2009-01-15 A002 45
2009-01-20 A002 -3 超领数量
不知道sql能否做谢谢
日期 物料代码 数量
2009-01-01 A001 10
2009-01-15 A001 16
2009-01-20 A001 9
2009-01-01 A002 20
2009-01-15 A002 45
2009-01-20 A002 32
我想得到的结果是:
日期 物料代码 数量 标识
2009-01-01 A001 10
2009-01-15 A001 16
2009-01-20 A001 9 还可领料
2009-01-01 A002 20
2009-01-15 A002 45
2009-01-20 A002 -3 超领数量
不知道sql能否做谢谢
INSERT @TB
SELECT '2009-01-01', 'A001', 10 UNION ALL
SELECT '2009-01-15', 'A001', 16 UNION ALL
SELECT '2009-01-20', 'A001', 9 UNION ALL
SELECT '2009-01-01', 'A002', 20 UNION ALL
SELECT '2009-01-15', 'A002', 45 UNION ALL
SELECT '2009-01-20', 'A002', -3SELECT A.*,CASE WHEN B.[日期] IS NOT NULL THEN CASE WHEN [数量]>0 THEN N'还可领料' ELSE N'超领数量' END ELSE N'' END AS 标识
FROM @TB AS A LEFT JOIN (
SELECT MAX([日期])AS [日期],[物料代码] FROM @TB GROUP BY [物料代码]) B
ON A.[日期]=B.[日期] AND A.[物料代码]=B.[物料代码]
/*
日期 物料代码 数量 标识
----------------------- ---- ----------- ----
2009-01-01 00:00:00.000 A001 10
2009-01-15 00:00:00.000 A001 16
2009-01-20 00:00:00.000 A001 9 还可领料
2009-01-01 00:00:00.000 A002 20
2009-01-15 00:00:00.000 A002 45
2009-01-20 00:00:00.000 A002 -3 超领数量
*/