我们表结构如下:
 行业T_JHXM_CLASS表结构:
CREATE TABLE T_JHXM_CLASS
(
  ID       NUMBER(10)                           NOT NULL, //行业ID
  NAME     VARCHAR2(100 BYTE),               //行业名称
  STATE    VARCHAR2(5 BYTE),                //
  VALUE    VARCHAR2(10 BYTE),                               //
  ORGANID  NUMBER(10)                                       //
)
申请表T_JHXM_GHCHZ的表结构如下:
CREATE TABLE T_JHXM_GHCHZ
(
  BID                NUMBER(10)                 NOT NULL, //申请表,
  PID                NUMBER(10),             //批次ID
  STATE              VARCHAR2(5 BYTE),           
  READSTATE          VARCHAR2(5 BYTE),
  READTIME           DATE,
  RECEIVETIME        DATE,
  TYPEOFUNIT         VARCHAR2(5 BYTE),
  CLASS              NUMBER(5),
  FORMOFPROJECT      VARCHAR2(5 BYTE),
  JK                 NUMBER(18,2),
  BK                 NUMBER(18,2),
  READUSERID         NUMBER(18),
  SUBCLASS           NUMBER,
  ZHUCEZIJIN         VARCHAR2(50 BYTE),
  COMPANYCREATETIME  DATE,
  PROJECTINFO        VARCHAR2(1000 BYTE),
  PROJECTPHASE       VARCHAR2(100 BYTE),
  CITYOFPLAN         NUMBER(18,2),        //申请金额
  ASKSORT            VARCHAR2(5 BYTE)            //申请类型,1-代表借款 ,2-代表拨款
)
批次表T_JHXM_PICI结构:
CREATE TABLE T_JHXM_PICI
(
  ID         NUMBER(10)                         NOT NULL, //ID序列值
  YEAR       VARCHAR2(10 BYTE),                            //该批结束时间
  BEGINTIME  DATE,                                         //批次编号
  CLASSID    NUMBER(10),                                   //行业ID
  NAME       VARCHAR2(100 BYTE),                           //批次名称
  USERID     NUMBER(10),
  SETTIME    DATE,
  PID        NUMBER(10),                                   //一个批次的ID
  ENDTIME    DATE
)
现在欲统计出如下面显示的结果:
用户选择不同批次时(对批次表T_JHXM_PICI中不同的PID),显示:
行业名称  申请借款 申请拨款 总金额
----------------------
软件     3000   3200  6200
生物医药   4000   4300  8300
航天航空   500    400  900
社会发展   1000   5000  6000
新材料    500    500  1000----------------------
总计     90000    12500    22400请问这个SQL语句我如何写呢?
我写了一个将行业名称与总金额取出来的SQL ,但是一次将申请借款与申请拨款,以及将总计用SQL语句如何取出来?
我写的将行业与总金额取出来的SQL语句如下:
select a.name,sum(b.CITYOFPLAN) total  from T_JHXM_CLASS a,T_JHXM_GHCHZ b,T_JHXM_PICI c  
                     where  a.id= b.class  (+)    and c.pid=20051
              and b.pid= c.id
and  a.id = c.classid
                       group by a.name 
请高手赐教,如何能一次将数据取出来?(在线等待)

解决方案 »

  1.   

    select a.name,
           sum(decode(a.ASKSORT,1,a.CITYOFPLAN,0)) 申请借款,
           sum(decode(a.ASKSORT,2,a.CITYOFPLAN,0)) 申请拨款,
           sum(b.CITYOFPLAN) total  
    from T_JHXM_CLASS a,T_JHXM_GHCHZ b,T_JHXM_PICI c  
                        where  a.id= b.class  (+)    and c.pid=20051
                  and b.pid= c.id
    and  a.id = c.classid
                           group by a.name