日期:2014-05-17  浏览次数:20713 次

求SQL取出最大月份的庫存數量 謝謝
本帖最后由 erpcsu 于 2013-03-01 09:27:49 编辑
表INVLB,表結構:
LB001 char(20)(品號),LB002 char(6)(庫存年月),LB003 numeric(16.6)(月初總數量)
11312021-00,     ,201210,     20        
11312021-00,     ,201211,     30         
11312021-00,     ,201212,     40         
...
為了計算當前的庫存數量,取出最大月份的庫存數,
使用 select top 1 LB001,MAX(LB002) AS LB002,LB003  
from INVLB 
WHERE LB001='11312021-00' 
GROUP BY LB001,LB003 
可以實現:
11312021-00,     ,201212,     40
.
問題:數據庫裡有很多料號,如何取出每個料號的最大月份的庫存數(不能直接指定當前的最大月份LB002,而是去表裡判斷)

LB001 char(20)(品號),LB002 char(6)(庫存年月),LB003 numeric(16.6)(月初總數量)
11312021-00,     ,201210,     20        
11312021-00,     ,201211,     30         
11312021-00,     ,201212,     40 
11312021-01,     ,201210,     20        
11312021-01,     ,201211,     30         
11312021-01,     ,201212,     400 
...
求結果顯示為
11312021-00,     ,201212,     40
11312021-01,     ,201212,     400
...
謝謝!

------解决方案--------------------
1你的语句是错的,top 1不排序不一定取出哪条数据
2、如下语句试试
select * from INVLB a
where not exists (
select 1 from INVLB b
where b.LB001 = a.LB001
and b.LB002 > a.LB002
)