日期:2014-05-17  浏览次数:20833 次

怎样取到最全的值 第一次遇到 求助
直接上题

有a表(虚构)
时间1 购买1 时间2 购买2
2001 10 2003 3
2004 3 2000 5
2003 5 2001 2
现在要进行统计得出如下结构:
时间 购买1 购买2 


求解 
不知道能不能解决




------解决方案--------------------
SQL code

SQL> with tb as(
  2       select '2001' dt1,10 num1,'2003' dt2,3 num2 from dual union all
  3       select '2004',3,'2000',5 from dual union all
  4       select '2003',5,'2001',2 from dual)
  5  select nvl(a.dt1,b.dt2) dt,nvl(a.num1,0),nvl(b.num2,0)
  6    from tb a full join tb b
  7      on a.dt1=b.dt2
  8   order by dt
  9  /
 
DT   NVL(A.NUM1,0) NVL(B.NUM2,0)
---- ------------- -------------
2000             0             5
2001            10             2
2003             5             3
2004             3             0