表 table01: 
  date        mat_wt     mat_name
  20110101     100        A
  20110101     200        A
  20110102     100        B
  20110102     100        C
  20110103     300        C
  20110103     200        B
  
表 table02: 
  date        mat_wt     mat_name
  20110101     100        D
  20110101     200        E
  20110102     100        F
  20110103     100        D
  20110104     300        A
  20110104     200        E
  
表 table03: 
  date        mat_wt     mat_name
  20110101     100        E
  20110102     200        G
  20110103     100        H
  20110104     100        G
  20110104     300        A
  20110105     200        H
  
先要求按照date,mat_name来求得mat_wt.

解决方案 »

  1.   

    楼主你要求什么,估计大家都看不懂没回哦。我也看不懂。select date,mat_name,sum(mat_wt)
      from table
     group by date,mat_name;
      

  2.   

    呵呵
    就是说三个表联合起来啊,然后按照date,mat_name来求mat_wt啊我自己写了一下语句,不晓得对不对啊
    select date,mat_name,sum(mat_wt)
    from
    (
      select date,mat_name, sum(mat_wt)
      from table01
      group by date,mat_name  union all  select date,mat_name, sum(mat_wt)
      from table02
      group by date, mat_name  union all  select date,mat_name, sum(mat_wt)
      from table03
      group by date,mat_name
    ) group by date,mat_name
      

  3.   

    不对。select date,mat_name,sum(mat_wt)
    from
    (
      select date,mat_name, mat_wt
      from table01  union all  select date,mat_name,mat_wt
      from table02  union all  select date,mat_name, mat_wt
      from table03
    ) group by date,mat_name
      

  4.   

    这样写不就是考虑了重复数据吗?
    就是说三张表中同date,同mat_name, 最后都是做一个统计啊
    比如
    20110101 200 E 来自表table02
    20110101 100 E 来自表table03那最后就是20110101 E 300。
      

  5.   

    先分组 后union 再分组
     效率高