id bgbh dm bh xmmc                                    dw     sl jz sgdw dj
190 001 04    第400章    桥梁、涵洞                              0 0 一队
190 002 04    第400章    桥梁、涵洞                              0 0
190 003 04    第400章    桥梁、涵洞                              0 0 一队
195 002 0440301 403-1 基础钢筋(包括灌注桩、承台、沉柱、沉井等)          0 0
195 003 0440301 403-1 基础钢筋(包括灌注桩、承台、沉柱、沉井等)           0 0 一队
197 002 044030102      -b     带肋钢筋(HRB355、HRB400)    kg            3456 0
197 003 044030102      -b     带肋钢筋(HRB355、HRB400)    kg          2322 0 一队
228 002 0441001 410-1 混凝土基础(包括支撑梁、桩基承台;但不包括桩基) m3          233 0
228 003 0441001 410-1 混凝土基础(包括支撑梁、桩基承台;但不包括桩基) m3          223 0 一队
我想在xmmc中除去重复的项目,数量(sl)列进行合计,如果用group by子句('select xmmc as 项目名称,Sum(sl) as 数量 from bgsjxm group by xmmc '),只能在dbgrid中显示,而不能改变数据表中的数据,如何实现数据表中数据的合并?

解决方案 »

  1.   

    如果只是要将项目合并并要存入数据库,可直接用
    select  xmmc as 项目名称,Sum(sl) as 数量 into bgsjxm1 from bgsjxm group by xmmc 
    建一个新表如果你只是要每次查询用,且你的数据库支持view,可以建一个view
    create view bgsjxm_v as select xmmc as 项目名称,Sum(sl) as 数量 from bgsjxm group by xmmc如果你是要改原表内容,个人感觉不合理。因为SQL没法确定你要改哪一行(哪一个ID)把你的最终要求说清楚,用SQL总可以实现的
      

  2.   

    谢谢keiy老师,
    我想要的效果是: 
    190 003 04  第400章    桥梁、涵洞                                                    0      0 一队 
    195 003 0440301 403-1 基础钢筋(包括灌注桩、承台、沉柱、沉井等)                    0      0 一队 
    197 003 044030102    -b    带肋钢筋(HRB355、HRB400)              kg          5778    0 一队 
    228 003 0441001 410-1 混凝土基础(包括支撑梁、桩基承台;但不包括桩基) m3          456    0 一队 
    用group by 子句可以达到,但只能在dbgrid中显示,而实际数据表中的数据并未修改成这样,我希望把数据表中的数据修改成这样。 
      

  3.   

    谢谢keiy老师,可以了,我的问题您总能一针见血的指出,高手就是高手!!!