loancur   loanbalanceamt      termdays    (列名)
     JPY          0.00              90        (值)
     USD         111.00             280       (值)
     USD        4444.00             180       (值)
上面是我一张表名字为A,
现在要查出的东西是,
要查出A表中的 贷款币种 (第一列),以及 期限天数大于365天的贷款余额  (第二列),期限天数大于90天小于365天的贷款余额(第三列),第四列期限天数小于90天的 贷款余额  并按贷款币种分组。
也就是要查出下面的样子  贷款币种    期限天数大于365天的贷款余额    期限天数大于90天小于365天的贷款余额    期限天数小于90天的贷款余额
    (值)              (值)                            (值)                           (值)
是Oracle的数据库
要怎么查出来啊????、?
A表的建表语句为
create table A
(
    loancur         nvarchar2(20),        //贷款币种
    loanbalanceamt  number(15,2),       //贷款余额
    termdays        int                 //期限天数
)
insert into A (loancur,loanbalanceamt,termdays) values ('JPY','0.00','90');
insert into A (loancur,loanbalanceamt,termdays) values ('USD','111.00','280');
insert into A (loancur,loanbalanceamt,termdays) values ('USD','4444.00','180');

解决方案 »

  1.   


    select a.loancur,
           sum(case
                   when a.termdays>=365 then a.loanbalanceamt 
                   else 0
               end
              )期限天数大于365天的贷款余额,
           sum(case
                   when a.termdays>=90 and a.termdays<365 then a.loanbalanceamt 
                   else 0
               end
              )期限天数大于90天小于365天的贷款余额,
           sum(case
                   when a.termdays<90 then a.loanbalanceamt 
                   else 0
               end
              )期限天数小于90天的贷款余额 
      from a
     group by a.loancur
      

  2.   

    用case when就可以解决,大家说得都很对