sum的高級使用

billlyh 2011-08-18 05:36:12
SQL語句如下:
select
t.s_date
,t.dept
,t.model
,0 "QC_QTY"
,SUM(nvl(t.QC_QTY,0)-nvl(T.TURN_NEXT,0)+nvl(t.PRE_COME,0)+nvl(t.NEXT_BACK,0)+nvl(t.REPAIR,0)-nvl(t.PICKING,0)-nvl(t.SCRAP,0)-nvl(t.BACK_PRE,0)) "sum_qty"
from
wip.xwp_xwpa136l_qc t
where
t.s_date between '20110701' and '20110701'
GROUP BY
t.s_date
,t.dept
,t.model

union

select
t.s_date
,t.dept
,t.model
,SUM(nvl(t.QC_QTY,0)) "QC_QTY"
,0 "sum_qty"
from
wip.xwp_xwpa136l_qc t
where
t.s_date between '20110701' and '20110701'
GROUP BY
t.s_date
,t.dept
,t.model
結果如下:
S_DATE DEPT MODEL QC_QTY sum_qty
20110701 EP1110 10320 0 591
20110701 EP1110 10320 320 0
20110701 EP1110 40059 0 53
20110701 EP1110 40059 60 0
20110701 EP1110 40059LH 0 41
20110701 EP1110 40059LH 28 0
20110701 EP1110 40568 0 145
20110701 EP1110 40568 33 0
如何改寫我的sql語句,或用其它方法
好讓上面的結果合並成下面的,就是把型號MODEL相同的QC_QTY、sum_qty合並
S_DATE DEPT MODEL QC_QTY sum_qty
20110701 EP1110 10320 320 591
20110701 EP1110 40059 60 53
20110701 EP1110 40059LH 28 41
20110701 EP1110 40568 33 145



...全文
78 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ylp198296 2011-08-18
  • 打赏
  • 举报
回复
把查询出来的数据完全再当成一个表进行查询,也叫视图查询
boyofcity 2011-08-18
  • 打赏
  • 举报
回复
外面再执行一个查询
select decode(a,0,b,a) from (你的查询)
hanzs 2011-08-18
  • 打赏
  • 举报
回复

--外层再嵌套一个group by
select s_date,dept,model,sum(qc_qty) as qc_qty,sum(sum_qty) as sum_qty
from
(
select
t.s_date
,t.dept
,t.model
,0 "QC_QTY"
,SUM(nvl(t.QC_QTY,0)-nvl(T.TURN_NEXT,0)+nvl(t.PRE_COME,0)+nvl(t.NEXT_BACK,0)+nvl(t.REPAIR,0)-nvl(t.PICKING,0)-nvl(t.SCRAP,0)-nvl(t.BACK_PRE,0)) "sum_qty"
from
wip.xwp_xwpa136l_qc t
where
t.s_date between '20110701' and '20110701'
GROUP BY
t.s_date
,t.dept
,t.model

union

select
t.s_date
,t.dept
,t.model
,SUM(nvl(t.QC_QTY,0)) "QC_QTY"
,0 "sum_qty"
from
wip.xwp_xwpa136l_qc t
where
t.s_date between '20110701' and '20110701'
GROUP BY
t.s_date
,t.dept
,t.model
)
group by s_date,dept,model

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧