大家好有一张表(tb1)的内容大概如下:
月份 铸件号 造型码 型板号 项目 产量1 产量2
1 29Z66-04081 BB101 7 0 106
1 29Z66-04081 BB101 0 3 0 0
1 29Z66-04081 BB101 0 5 0 0
1 29Z66-04081 BB101 D4 7 206 0
1 29Z66-04081 BBZZZ 0 1 0 0
2 29Z66-04081 BB101 7 0 149
2 29Z66-04081 BB101 0 3 0 0
2 29Z66-04081 BB101 0 5 0 0
2 29Z66-04081 BB101 D4 7 0 0
2 29Z66-04081 BBZZZ 0 1 0 0
…………………………………………
…………………………
现在需要查询的结果 所得的数据如下:
月份 铸件号 造型码 项目 产量1 产量2
1 29Z66-04081 BB101 3 0 0
1 29Z66-04081 BB101 5 0 0
1 29Z66-04081 BB101 7 206 106
1 29Z66-04081 BBZZZ 1 0 0
2 29Z66-04081 BB101 3 0 0
2 29Z66-04081 BB101 5 0 0
2 29Z66-04081 BB101 7 0 149
2 29Z66-04081 BBZZZ 1 0 0
也就是在同一个月份同一个铸件号,同一个造型码下,项目=7的重复此处至少有两次的,产量1,产量2字段的数据就相加
项目值为其他的保持不变,因为每个零件号在不同月中只有项目=7才可能在同一月份同一造型线,同铸件号下出现2次以上,其他的3 5 1 只会出现一次
月份 铸件号 造型码 型板号 项目 产量1 产量2
1 29Z66-04081 BB101 7 0 106
1 29Z66-04081 BB101 0 3 0 0
1 29Z66-04081 BB101 0 5 0 0
1 29Z66-04081 BB101 D4 7 206 0
1 29Z66-04081 BBZZZ 0 1 0 0
2 29Z66-04081 BB101 7 0 149
2 29Z66-04081 BB101 0 3 0 0
2 29Z66-04081 BB101 0 5 0 0
2 29Z66-04081 BB101 D4 7 0 0
2 29Z66-04081 BBZZZ 0 1 0 0
…………………………………………
…………………………
现在需要查询的结果 所得的数据如下:
月份 铸件号 造型码 项目 产量1 产量2
1 29Z66-04081 BB101 3 0 0
1 29Z66-04081 BB101 5 0 0
1 29Z66-04081 BB101 7 206 106
1 29Z66-04081 BBZZZ 1 0 0
2 29Z66-04081 BB101 3 0 0
2 29Z66-04081 BB101 5 0 0
2 29Z66-04081 BB101 7 0 149
2 29Z66-04081 BBZZZ 1 0 0
也就是在同一个月份同一个铸件号,同一个造型码下,项目=7的重复此处至少有两次的,产量1,产量2字段的数据就相加
项目值为其他的保持不变,因为每个零件号在不同月中只有项目=7才可能在同一月份同一造型线,同铸件号下出现2次以上,其他的3 5 1 只会出现一次
insert into tb select 1,'29Z66-04081','BB101','',7,0,106
insert into tb select 1,'29Z66-04081','BB101','0',3,0,0
insert into tb select 1,'29Z66-04081','BB101','0',5,0,0
insert into tb select 1,'29Z66-04081','BB101','D4',7,206,0
insert into tb select 1,'29Z66-04081','BBZZZ','0',1,0,0
insert into tb select 2,'29Z66-04081','BB101','',7,0,149
insert into tb select 2,'29Z66-04081','BB101','0',3,0,0
insert into tb select 2,'29Z66-04081','BB101','0',5,0,0
insert into tb select 2,'29Z66-04081','BB101','D4',7,0,0
insert into tb select 2,'29Z66-04081','BBZZZ','0',1,0,0
go
select 月份,铸件号,造型码,项目,产量1,产量2 from tb where 项目<>7
union all
select 月份,铸件号,造型码,项目,sum(产量1),sum(产量2) from tb where 项目=7 group by 月份,铸件号,造型码,项目 order by 月份
go
drop table tb
/*
月份 铸件号 造型码 项目 产量1 产量2
----------- ------------------------------ ---------- ----------- ----------- -----------
1 29Z66-04081 BB101 3 0 0
1 29Z66-04081 BB101 5 0 0
1 29Z66-04081 BBZZZ 1 0 0
1 29Z66-04081 BB101 7 206 106
2 29Z66-04081 BB101 7 0 149
2 29Z66-04081 BB101 3 0 0
2 29Z66-04081 BB101 5 0 0
2 29Z66-04081 BBZZZ 1 0 0(8 行受影响)*/