shanxixixixixi
2017-06-12 02:11
采纳率: 10%
浏览 4.3k

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

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

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

sql语句怎么写呢?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • coder_17 2017-06-12 03:34
    已采纳

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

    点赞 打赏 评论
  • jishengli_boke 2017-06-12 02:17

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

    点赞 打赏 评论
  • CCAV521 2017-06-12 02:30

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

    点赞 打赏 评论
  • xiao哈哈哈 2017-06-12 03:16

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

    点赞 打赏 评论
  • my_name_nb 2017-06-12 04:40

    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)

    点赞 打赏 评论

相关推荐 更多相似问题