日期:2014-05-18  浏览次数:20528 次

SQL求和问题(不用临时表),请教
不用临时表,如何求表A1的和,如下:
A1

ID         PN         SubLot       Qty       Status     Trays
TG001   ABC       AD0001-1     90         S01             2
TG002   ABC       AD0001-1     90         S01             2
TG003   ABD       AD0002-1     80         S01             1
TG004   ABC       AD0003-1     150       S01             3
TG005   ABC       AD0003-1     150       S01             3
TG006   ABC       AD0003-1     150       S01             3
TG007   ABC       AD0001-2     60         S02             1


其中ID为主键,Trays的值表示与该只有ID不同的纪录的条数。
想要得到的结果是:PN为**并且Status为**的不重复的SubLot的和。
例如PN为ABC并且Status为S01的和为150+90=240


------解决方案--------------------
select sum(distinct qty) from A1 where PN= 'ABC ' and Status= 'S01 '

------解决方案--------------------
错了

select sum( Qty )
from (
select PN , SubLot , Qty , Status, Trays
from a1
group by PN , SubLot , Qty , Status, Trays) a
where a.PN = 'ABC ' and a.Status= 'S01 '