急,急。。优化pl-sql----执行很久时间
四处转 2015-05-26 04:03:35
select DM.XF_TXDATE as 日期,
DM.XF_COLOR as 顏色,
DM.XF_STYLE as 款號,
sum(-DM.XF_QTY)+sum(vw.xf_qoh) as 收貨件數,
sum(-DM.XF_QTY) as 累計銷售件數,--銷售件數
-- sum(vw.xf_qoh) as 庫存件數
case
when XF_TXDATE between ( TRUNC ( SYSDATE - 7, 'DD')
- TO_CHAR (SYSDATE - 7, 'D')
+ 2)
and ( TRUNC ( SYSDATE - 7, 'DD')
- TO_CHAR ( SYSDATE - 7, 'D')
+ 8)
then
SUM (XF_QOH) ---上周
else
0
end
as qty,
case
when XF_TXDATE >=
TRUNC (NEXT_DAY( SYSDATE - 8, 1) + 1)
and XF_TXDATE <=
TRUNC (NEXT_DAY( SYSDATE - 8, 1) + 7) + 1 --本週
then
SUM (XF_QOH)
end
as col,
case
when XF_TXDATE between TRUNC (SYSDATE) - 14
and TRUNC (SYSDATE) - 8 --上上周
then
SUM (XF_QOH)
else
0
end
as shangshangzhou,
case
when XF_TXDATE between TRUNC (SYSDATE)-21
and TRUNC (SYSDATE)-15 --上上上周
then
SUM (XF_QOH)
else
0
end
-- decode((SUM(-DM.XF_QTY)+SUM(VW.XF_QOH)),0,1,sum(-DM.XF_QTY)/(SUM(-DM.XF_QTY)+SUM(VW.XF_QOH)))||'%' as 完成率
from XF_ITEMDM dm, BOS_QOH_VW vw
where -- dm.XF_TXDATE BETWEEN TO_DATe('2015-01-11','yyyy-MM-dd') and
-- to_date('2015-01-12','yyyy-MM-dd')
DM.XF_PLU = VW.XF_PLU
-- AND VW.XF_STORECODE=VW.XF_STORECODE
-- and STR.XF_GROUP2 in ('GZ','SZ')
and VW.XF_STORECODE <> '5AW500'
AND DM.XF_GROUP4 = 'SS15'
group by
DM.XF_COLOR,
DM.XF_STYLE,
dm.XF_TXDATE