select call_date, MIN_A, MIN_B, MIN_C, MIN_D
from (
(select call_date, min MIN_A
from table1
where carrier = 'A') A,
(select call_date, min MIN_B
from table1
where carrier = 'B') B,
(select call_date, min MIN_C
from table1
where carrier = 'C') C,
(select call_date, min MIN_D
from table1
where carrier = 'D') D
where a.call_date = b.call_date and a.call_date = c.call_date and a.call_date = d.call_date

解决方案 »

  1.   

    上面的sql前提条件 call_date 都相同,因为我看到楼主的数据都相同(9.1...9.30)。
    楼主可以吗?
      

  2.   

    SELECT CALL_DATE, 
           sum(decode(carrier,'A',min,0)) min_a,
           sum(decode(carrier,'B',min,0)) min_b,
           sum(decode(carrier,'C',min,0)) min_c,
           sum(decode(carrier,'D',min,0)) min_d
    FROM
           (
           SELECT carrier,call_date,sum(min) min 
           from
                  (
                  select carrier,call_date,min from table1
                  union
                  select carrier,call_date,min from table2
                  ) t1
           group by call_date,CARRIER) t2
    group by call_date
      

  3.   

    xtgmdpdc(月满西楼)按你的我执行不了  我照的语句该了下 可以运行 但是得到的表里的值都是零  SELECT CALL_DATE, 
           sum(decode(carrier,'A',min,0)) min_a,
           sum(decode(carrier,'B',min,0)) min_b,
           sum(decode(carrier,'C',min,0)) min_c,
           sum(decode(carrier,'D',min,0)) min_d
    FROM
          
                  (
                  select carrier,call_date,min from table1
                  union
                  select carrier,call_date,min from table2
                  ) 
    group by call_date
      

  4.   

    select A.call_date,A.min,B.min, C.min,D.min
    from table1 A,table1 B, table2 C,table2 D
    where A.call_date=B.Call_date
    and B.call_date=C.Call_date
    and C.call_date=D.Call_date
    and A.Carrier='A'
    and B.Carrier='B'
    and C.Carrier='C'
    and D.Carrier='D'