读书人

剔除重复记录解决思路

发布时间: 2012-04-22 18:34:46 作者: rapoo

剔除重复记录
如下表 DNDetail
DNNumber CompanyCode PlantCode ShipQty PickQty PackQty Location
080001783416001601 4.0000 4.0000 0.00001001
080001783716001601 1.0000 1.0000 1.00001011
080001783716001601 1.0000 1.0000 0.00001011
080001783716001601 1.0000 1.0000 0.00001011
080001783816001601 1.0000 1.0000 0.00001011
080001783816001601 1.0000 1.0000 0.00001011
080001783816001601 1.0000 1.0000 0.00001011
080001784216001601 1.0000 1.0000 0.00001011
080001784416001601 1.0000 1.0000 0.00001003
080001784516001601 1.0000 1.0000 0.00001011
080001784616001601 1.0000 1.0000 0.00001003
080001784716001601 1.0000 1.0000 0.00001001
080001784716001601 1.0000 1.0000 0.00001003

最终希望得到的结果是:
DNNumber CompanyCode PlantCode ShipQty PickQty PackQty
080001784716001601 2.0000 2.0000 0.0000
DNNumber,CompanyCode,PlantCode作为查询条件,
Location为空,或者DNNumber有多条不同Location记录,就取出来对ShipQty, PickQty, PackQty汇总计算

[解决办法]


DNNumber,CompanyCode,PlantCode作为查询条件,
Location为空,或者DNNumber有多条不同Location记录,就取出来对ShipQty, PickQty, PackQty汇总计算


楼上正解,但是最后的查询语句该是
select
DNNumber,
CompanyCode,
PlantCode,
ShipQty=sum(ShipQty),
PickQty=sum(PickQty),
PackQty=sum(PackQty)
from @DNDetail
where Location is null or DNNumber in (select DNNumber from @DNDetail group by DNNumber having(count(distinct Location))>1)
group by DNNumber,CompanyCode,PlantCode

[解决办法]
agree
thanks

读书人网 >SQL Server

热点推荐