oracle视图中sum函数的问题
时间:2011-09-15
来源:互联网
create or replace view v_ht_basebudget4fee_mk as
select
/******************************************************************************
NAME: TIA
PURPOSE:
REVISIONS:
Ver Date Author Description
--------- ---------- --------------- ------------------------------------
1.0 2010 周凌
NOTES:
概算的 每一明细级
的 四个费用项 合计
包括 初始的 和 实际进度和出库得
******************************************************************************/
A.id,
A.itemcode,A.itemname,
-- 建筑
sum
(
case when B.feetypeid like '1.2.2%' then
B.passfee
else
0
end
) JZ_sumpassfee ,
sum
(
case when C.feetypeid like '1.2.2%' then
C.FMONEY
else
0
end
) JZ_sumFMONEY ,
-- 安装
sum
(
case when B.feetypeid like '1.2.4%' then
B.passfee
else
0
end
) AZ_sumpassfee ,
sum
(
case when C.feetypeid like '1.2.4%' then
C.FMONEY
else
0
end
) AZ_sumFMONEY ,
-- 设 备
sum
(
case when b.feetypeid like '1.2.3%' then
b.passfee
else
0
end
) SB_sumpassfee ,
sum
(
case when C.feetypeid like '1.2.3%' then
C.FMONEY
else
0
end
) SB_sumFMONEY ,
-- 其 他
sum
(
case when B.feetypeid like '1.2.5%' then
B.passfee
else
0
end
) QT_sumpassfee ,
sum
(
case when C.feetypeid like '1.2.5%' then
C.FMONEY
else
0
end
) QT_sumFMONEY ,
-- 矿建
sum
(
case when B.feetypeid like '1.2.1%' then
B.passfee
else
0
end
) KJ_sumpassfee ,
sum
(
case when C.feetypeid like '1.2.1%' then
C.FMONEY
else
0
end
) KJ_sumFMONEY
from
(select * from HT_BUDGETITEM where to_number(id)>910 ) A,
HT_BGTFEEINI B ,
-- 实际进度和出库方向 以及 归集方向 合并
(
select
T2.BUDGETID,
T2.FEETYPEID ,
T1.FILEFEE FMONEY,T2.sno
from
BID_FTEMPOSUB T1,
HT_DTBGTFEETO T2
where T1.TOID = T2.sno(+)
union all
-- 出库
select
T2.budgetid,
T2.feetypeid,
-- 动产 不含税
case when T2.ISRASSET ='1' then nvl(T1.out_money,0)
-- 不动产 含含税 的金额
when T2.ISRASSET ='2' then Nvl(T1.out_money,0) + nvl(T1.outratem,0)
end outfee ,
T1.sno
from
WZ_MATOUT_SUB T1 ,
(
select
T2.ISRASSET,
T1.* from
WZ_MATOUT T1,
HT_BUDGETITEM T2
where T1.BUDGETID = T2.ITEMCODE(+)
) T2
where
T1.pid = T2.INSTANCEID(+)
union all
--归集
select
dgtcode ,FEETYPEID,amount ,sno
from PA_COSTABTIONDTL
union all
--分摊
select BUDGETID,FEETYPEID,DIVIDFEE,sno from
HT_DIVIDERUN_SUB
) C
where
A.itemcode = b.BUDGETID(+) AND
A.itemcode = C.BUDGETID(+)
group by A.id,A.itemcode,A.itemname
请问这个oracle视图里面的有sum函数请问高手像这样的能否详解一下什么意思啊sum
(
case when B.feetypeid like '1.2.1%' then
B.passfee
else
0
end
) KJ_sumpassfee ,
select
/******************************************************************************
NAME: TIA
PURPOSE:
REVISIONS:
Ver Date Author Description
--------- ---------- --------------- ------------------------------------
1.0 2010 周凌
NOTES:
概算的 每一明细级
的 四个费用项 合计
包括 初始的 和 实际进度和出库得
******************************************************************************/
A.id,
A.itemcode,A.itemname,
-- 建筑
sum
(
case when B.feetypeid like '1.2.2%' then
B.passfee
else
0
end
) JZ_sumpassfee ,
sum
(
case when C.feetypeid like '1.2.2%' then
C.FMONEY
else
0
end
) JZ_sumFMONEY ,
-- 安装
sum
(
case when B.feetypeid like '1.2.4%' then
B.passfee
else
0
end
) AZ_sumpassfee ,
sum
(
case when C.feetypeid like '1.2.4%' then
C.FMONEY
else
0
end
) AZ_sumFMONEY ,
-- 设 备
sum
(
case when b.feetypeid like '1.2.3%' then
b.passfee
else
0
end
) SB_sumpassfee ,
sum
(
case when C.feetypeid like '1.2.3%' then
C.FMONEY
else
0
end
) SB_sumFMONEY ,
-- 其 他
sum
(
case when B.feetypeid like '1.2.5%' then
B.passfee
else
0
end
) QT_sumpassfee ,
sum
(
case when C.feetypeid like '1.2.5%' then
C.FMONEY
else
0
end
) QT_sumFMONEY ,
-- 矿建
sum
(
case when B.feetypeid like '1.2.1%' then
B.passfee
else
0
end
) KJ_sumpassfee ,
sum
(
case when C.feetypeid like '1.2.1%' then
C.FMONEY
else
0
end
) KJ_sumFMONEY
from
(select * from HT_BUDGETITEM where to_number(id)>910 ) A,
HT_BGTFEEINI B ,
-- 实际进度和出库方向 以及 归集方向 合并
(
select
T2.BUDGETID,
T2.FEETYPEID ,
T1.FILEFEE FMONEY,T2.sno
from
BID_FTEMPOSUB T1,
HT_DTBGTFEETO T2
where T1.TOID = T2.sno(+)
union all
-- 出库
select
T2.budgetid,
T2.feetypeid,
-- 动产 不含税
case when T2.ISRASSET ='1' then nvl(T1.out_money,0)
-- 不动产 含含税 的金额
when T2.ISRASSET ='2' then Nvl(T1.out_money,0) + nvl(T1.outratem,0)
end outfee ,
T1.sno
from
WZ_MATOUT_SUB T1 ,
(
select
T2.ISRASSET,
T1.* from
WZ_MATOUT T1,
HT_BUDGETITEM T2
where T1.BUDGETID = T2.ITEMCODE(+)
) T2
where
T1.pid = T2.INSTANCEID(+)
union all
--归集
select
dgtcode ,FEETYPEID,amount ,sno
from PA_COSTABTIONDTL
union all
--分摊
select BUDGETID,FEETYPEID,DIVIDFEE,sno from
HT_DIVIDERUN_SUB
) C
where
A.itemcode = b.BUDGETID(+) AND
A.itemcode = C.BUDGETID(+)
group by A.id,A.itemcode,A.itemname
请问这个oracle视图里面的有sum函数请问高手像这样的能否详解一下什么意思啊sum
(
case when B.feetypeid like '1.2.1%' then
B.passfee
else
0
end
) KJ_sumpassfee ,
作者: zhang__wenlong 发布时间: 2011-09-15
-- 矿建
sum
(
case when B.feetypeid like '1.2.1%' then
B.passfee
else
0
end
) KJ_sumpassfee ,
如果字段B.feetypeid 满足 like '1.2.1%'时,则KJ_sumpassfee 的值是字段B.passfee值的和,也就是SUM(B.passfee);
否则,KJ_sumpassfee 的值就是0
sum
(
case when B.feetypeid like '1.2.1%' then
B.passfee
else
0
end
) KJ_sumpassfee ,
如果字段B.feetypeid 满足 like '1.2.1%'时,则KJ_sumpassfee 的值是字段B.passfee值的和,也就是SUM(B.passfee);
否则,KJ_sumpassfee 的值就是0
作者: yixilan 发布时间: 2011-09-15
兰兰,太强大了,那么长也有耐心看下去。
作者: liuhaiyang5300 发布时间: 2011-09-15
引用 2 楼 liuhaiyang5300 的回复:
兰兰,太强大了,那么长也有耐心看下去。
兰兰,太强大了,那么长也有耐心看下去。
哪里哪里,其实,你看楼主最后问的那块,只是一小部分:)
作者: yixilan 发布时间: 2011-09-15
引用 1 楼 yixilan 的回复:
-- 矿建
sum
(
case when B.feetypeid like '1.2.1%' then
B.passfee
else
0
end
) KJ_sumpassfee ,
如果字段B.feetypeid 满足 like '1.2.1%'时,则KJ_sumpassfee 的值是字段B.passfee值的和,也就是SUM(B.p……
-- 矿建
sum
(
case when B.feetypeid like '1.2.1%' then
B.passfee
else
0
end
) KJ_sumpassfee ,
如果字段B.feetypeid 满足 like '1.2.1%'时,则KJ_sumpassfee 的值是字段B.passfee值的和,也就是SUM(B.p……
其实你可以理解为:对feetypeid like '1.2.1%'的passfee字段进行合计
作者: lxyzxq2008 发布时间: 2011-09-15
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28