SQL表名  ysks  单号     金额       已收    日期       名称    余额     备注     品名   
 123456    999.00      0.00   20090101   CSDN    0.00   汇总      汇总测试0
 123456      0.00    888.00   20090102   CSDN    0.00   汇总1     汇总测试1
 123457    999.00      0.00   20090101   CSDN    0.00   汇总2     汇总测试2
 123457      0.00      9.00   20090104   CSDN    0.00   汇总3     汇总测试3
 ...要汇总成 
  
  单号     金额       已收    日期       名称    余额     备注     品名   
 123456    999.00    888.00   20090101   CSDN    0.00   汇总      汇总测试0
 123457    999.00      9.00   20090101   CSDN    0.00   汇总2     汇总测试2
 ...
就是将 金额 跟已收汇总,然后其他字段仍要保留。而且,在YSKS表中汇总,直接将表数据修改。希指点。。

解决方案 »

  1.   

    select 单号,sum(金额),sum(已收),日期,名称,余额,备注,品名
    from ysks
    group by 单号mysql> select * from ysks;
    +--------+--------+--------+----------+------+------+-------+-----------+
    | 单号   | 金额   | 已收   | 日期     | 名称 | 余额 | 备注  | 品名      |
    +--------+--------+--------+----------+------+------+-------+-----------+
    | 123456 | 999.00 |   0.00 | 20090101 | CSDN | 0.00 | 汇总  | 汇总测试0 |
    | 123456 |   0.00 | 888.00 | 20090102 | CSDN | 0.00 | 汇总1 | 汇总测试1 |
    | 123457 | 999.00 |   0.00 | 20090101 | CSDN | 0.00 | 汇总2 | 汇总测试2 |
    | 123457 |   0.00 |   9.00 | 20090104 | CSDN | 0.00 | 汇总3 | 汇总测试3 |
    +--------+--------+--------+----------+------+------+-------+-----------+
    4 rows in set (0.00 sec)mysql> select 单号,sum(金额),sum(已收),日期,名称,余额,备注,品名
        -> from ysks
        -> group by 单号;
    +--------+-----------+-----------+----------+------+------+-------+-----------+
    | 单号   | sum(金额) | sum(已收) | 日期     | 名称 | 余额 | 备注  | 品名      |
    +--------+-----------+-----------+----------+------+------+-------+-----------+
    | 123456 |    999.00 |    888.00 | 20090101 | CSDN | 0.00 | 汇总  | 汇总测试0 || 123457 |    999.00 |      9.00 | 20090101 | CSDN | 0.00 | 汇总2 | 汇总测试2 |+--------+-----------+-----------+----------+------+------+-------+-----------+
    2 rows in set (0.00 sec)mysql>
      

  2.   

    如果用标准的SQL语句,应该添加一个唯一标识的字段,取最小字段对应的备注、品名 
      

  3.   


    很简单,首先你要回答这个问题。 123456  999.00    0.00   20090101   CSDN  0.00   汇总    汇总测试0
     123456    0.00  888.00   20090102   CSDN  0.00   汇总1   汇总测试1
    单号相同的记录中, 你准备取哪条的 日期/名称/余额/备注/品名
      

  4.   

    你首先要确定,你要取最大 OR 最小ID所对应的字段内容
      

  5.   

    楼主似乎看回复并不仔细啊。很简单,首先你要回答这个问题。 123456  999.00  0.00   20090101   CSDN  0.00   汇总  汇总测试0
     123456  0.00  888.00   20090102   CSDN  0.00   汇总1   汇总测试1单号相同的记录中, 你准备取哪条的 日期/名称/余额/备注/品名