我们表结构如下:
行业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
请高手赐教,如何能一次将数据取出来?(在线等待)
行业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
请高手赐教,如何能一次将数据取出来?(在线等待)
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