日期:2014-05-17 浏览次数:21201 次
SQL> create table A(
  2  userid varchar2(3)
  3  );
表已创建。
SQL> insert into A values('aaa');
已创建 1 行。
SQL> insert into A values('bbb');
已创建 1 行。
SQL> insert into A values('ccc');
已创建 1 行。
SQL> create table B(
  2  userid varchar2(3),
  3  code varchar2(2),
  4  val int
  5  );
表已创建。
SQL> insert into B values('aaa','x1',1);
已创建 1 行。
SQL> insert into B values('aaa','x2',2);
已创建 1 行。
SQL> insert into B values('aaa','x2',3);
已创建 1 行。
SQL> insert into B values('bbb','x1',1);
已创建 1 行。
SQL> insert into B values('bbb','x2',2);
已创建 1 行。
SQL> select
  2      A.userid,
  3      sum(decode(B.code,'x1',B.val,0)) x1,
  4      sum(decode(B.code,'x2',B.val,0)) x2
  5  from A
  6  left join B on A.userid=B.userid
  7  group by A.userid;
USERID         X1         X2                                                    
------ ---------- ----------                                                    
aaa             1          5                                                    
bbb             1          2                                                    
ccc             0          0