表a 有如下字段 item_code1(项目代码1),item_name1(项目名称1),item_amt1(项目金额1),item_code2(项目代码 2),item_name2(项目名称2),item_amt2(项目金额2),item_code3(项目代码3),item_name3(项目名称 3),item_amt3(项目金额3),其他字段省略。
现用一条SQL语句计算各种项目代码总的项目金额
例如:item_code1|item_name1|item_amt1|item_code2|item_name2|item_amt2|item_code3|item_name3|item_amt3
10001|项目1|100.00|10002|项目2|200.00|10003|项目3|300.00
10003|项目3|100.00|10001|项目1|200.00|10002|项目2|300.00
10004|项目4|100.00|10003|项目3|200.00|10005|项目5|300.00
10003|项目3|100.00|10002|项目2|200.00|10005|项目5|300.00希望的结果是
10001|项目1|总金额
10002|项目2|总金额
10003|项目3|总金额
10004|项目4|总金额
10005|项目5|总金额 

解决方案 »

  1.   

    三段查询,分别item_code1,2,3
    然后UNION起来,再分组求和
      

  2.   

    select code,
           name,
           sum(amt) (select item_code1 code, item_name1 name, item_amt1 amt
                       from a
                     union all
                     select item_code2 code, item_name2 name, item_amt2 amt
                       from a
                     union all
                     select item_code3 code, item_name3 name, item_amt3 amt
                       from a)
     group by code, name