mysql将一个表中有相同字段值的记录合并

表名:materials
物资编号 物资名称 一级数量 二级数量
0000001 扳手 10 100
0000003 螺丝 10 0
0000002 打印机 15 0
0000003 螺丝 42 0
0000002 打印机 10 0

二级数量=0 相同物资编号的数据合并为一条 统计总的一级数量 二级数量!=0 的不合并

sql语句怎么写呢?

5个回答

select 物资编号 , sum(一级数量) sl from materials where 二级数量=0 group by 物资编号
union all
select 物资编号 ,一级数量 sl from materials where 二级数量<>0

先把相同物资编号数量=0的查询出来,再把其它的查询出来。union一下

where 二级数量!=0
union
sum(一级数量) where 二级数量=0 group by 物资编号,二级数量

select sum(一级数量) where 二级数量=0 group by 物资编号;

1、首先,查找表中多余的重复记录,重复记录是根据单个字段(FIELD_CODE)来判断

select * from R_RESOURCE_DETAILS where FIELD_CODE in(select FIELD_CODE from R_RESOURCE_DETAILS group by having count(FIELD_CODE) >1)

2、删除表中多余的重复记录,重复记录是根据单个字段(FIELD_CODE)来判断,只留有rowid最小的记录

delete from R_RESOURCE_DETAILS where (FIELD_CODE) in (select FIELD_CODE from R_RESOURCE_DETAILS group by FIELD_CODE having count(FIELD_CODE) >1) and rowid not in (select min(rowid) from R_RESOURCE_DETAILS group by FIELD_CODE having count(*)>1)

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐