数据库 Oracleaccount表
name    money
a       100
b       0
c       100detail表
name    type    money
a       存款       100
a       取款       -200
a       存款       200界面展示用户     余额      存款     取款
a       100      300     -200
b       0        0        0
c       100      0        0需求其实很简单 查询出account中所有用户  然后更上明细
b,c用户没有明细  依然展示```我就被卡在这了!
希望知道的朋友帮忙下谢谢
建表语句create table  Account
(
name varchar(1),
money number
);create table  Detail
(
name varchar(1),
type varchar(4),
money number
);
insert into account values('a',100);
insert into account values('b',0);
insert into account values('c',100);insert into Detail values('a','存款',200);
insert into Detail values('a','取款',-200);
insert into Detail values('a','存款',100);
commit;

解决方案 »

  1.   

    select a.name 用户,a.money 余额 ,b.money 存款 ,c.money 取款
           from account a left outer join (
                select name,type,money from
                (select name,type ,sum(money) money from detail group by name,type) 
                 where type='存款'
           ) b
           on a.name=b.name
           left outer join (
           select name,type,money from
           (select name,type ,sum(money) money from detail group by name,type)
           where type='取款'
           ) c
           on a.name=c.name ;
      

  2.   

    select T.name,sum(distinct t.money) '余额', sum(case when TYPE='存款' then p.money else 0 end) '存款',
    sum(case when TYPE='取款 ' then p.money else 0 end) '取款 '
    from Account T  left join detail P on T.name=P.name group by  t.name