1. 程式人生 > >每個使用者一行展示來電轉駁狀態SQL語句(HWHB)

每個使用者一行展示來電轉駁狀態SQL語句(HWHB)

文章目錄

使用分表方式

select MM.IMSI,MM.MSISDN,
CASE SS.CFU --開始判定CFU 
WHEN 0 THEN 'X'  
WHEN 1 THEN nvl(TCFU.FTN,'定製')
ELSE '未知' END CFU,
CASE SS.CFB --開始判定CFB  
WHEN 0 THEN 'X'  
WHEN 1 THEN nvl(TCFB.FTN,'定製')
ELSE '未知' END CFB,
CASE SS.CFNRY --開始判定CFNRY 
WHEN 0 THEN 'X'  
WHEN 1 THEN nvl(TCFNRY.FTN,'定製')
ELSE '未知' END CFNRY,
CASE SS.CFNRC --開始判定CFNRC 
WHEN 0 THEN 'X'  
WHEN 1 THEN nvl(TCFNRC.FTN,'定製')
ELSE '未知' END CFNRC,
CASE SS.CFD_CFB --開始判定CFDCFB 
WHEN 0 THEN 'X'  
WHEN 1 THEN nvl(TCFD.FTN,'覆蓋')
ELSE '未知' END CFD_CFB,
CASE SS.CFD_CFNRY --開始判定CFDCFNRY 
WHEN 0 THEN 'X'  
WHEN 1 THEN nvl(TCFD.FTN,'覆蓋')
ELSE '未知' END CFD_CFNRY,
CASE SS.CFD_CFNRC --開始判定CFDCFB 
WHEN 0 THEN 'X'  
WHEN 1 THEN nvl(TCFD.FTN,'覆蓋') 
ELSE '未知' END CFD_CFNRC
from XHWHB_2042_MAIN mm,XHWHB_2042_SS ss,
(select IMSI,FTN from XHWHB_2042_SS_ACT a1 where A1.BSG='TS10' and A1.SS='CFU' and A1.ACT=1) TCFU,
(select IMSI,FTN from XHWHB_2042_SS_ACT a1 where A1.BSG='TS10' and A1.SS='CFB' and A1.ACT=1) TCFB,
(select IMSI,FTN from XHWHB_2042_SS_ACT a1 where A1.BSG='TS10' and A1.SS='CFNRY' and A1.ACT=1) TCFNRY,
(select IMSI,FTN from XHWHB_2042_SS_ACT a1 where A1.BSG='TS10' and A1.SS='CFNRC' and A1.ACT=1) TCFNRC,
(select IMSI,FTN,ACT from XHWHB_2042_SS_ACT a1 where A1.BSG='TS10' and A1.SS='CFD' and A1.ACT=1) TCFD
where MM.IMSI=SS.IMSI 
and MM.IMSI=TCFU.IMSI(+)
and MM.IMSI=TCFB.IMSI(+)
and MM.IMSI=TCFNRY.IMSI(+)
and MM.IMSI=TCFNRC.IMSI(+)
and MM.IMSI=TCFD.IMSI(+)

使用decode函式

select MM.IMSI,MM.MSISDN,
CASE SS.CFU --開始判定CFU 
WHEN 0 THEN 'X'  
WHEN 1 THEN nvl(ssa.cfu,'定製')
ELSE '未知' END CFU,
CASE SS.CFB --開始判定CFB  
WHEN 0 THEN 'X'  
WHEN 1 THEN nvl(ssa.cfb,'定製') 
ELSE '未知' END CFB,
CASE SS.CFNRY --開始判定CFNRY 
WHEN 0 THEN 'X'  
WHEN 1 THEN nvl(ssa.cfnry,'定製') 
ELSE '未知' END CFNRY,
CASE SS.CFNRC --開始判定CFNRC 
WHEN 0 THEN 'X'  
WHEN 1 THEN nvl(ssa.cfnrc,'定製')
ELSE '未知' END CFNRC,
CASE SS.CFD_CFB --開始判定CFDCFB 
WHEN 0 THEN 'X'  
WHEN 1 THEN nvl(ssa.CFD,'覆蓋')
END CFD_CFB,
CASE SS.CFD_CFNRY --開始判定CFDCFNRY 
WHEN 0 THEN 'X'  
WHEN 1 THEN nvl(ssa.CFD,'覆蓋')
END CFD_CFNRY,
CASE SS.CFD_CFNRC --開始判定CFDCFB 
WHEN 0 THEN 'X'  
WHEN 1 THEN nvl(ssa.CFD,'覆蓋')
END CFD_CFNRC
from XHWHB_2042_MAIN mm,XHWHB_2042_SS ss,
(select sa.IMSI,
Max(decode(sa.SS, 'CFU',sa.ftn,null)) CFU, 
Max(decode(sa.SS, 'CFB',sa.ftn,null)) CFB,
Max(decode(sa.SS, 'CFNRY',sa.ftn,null)) CFNRY,
Max(decode(sa.SS, 'CFNRC',sa.ftn,null)) CFNRC,
Max(decode(sa.SS, 'CFD',sa.ftn,null)) CFD
from XHWHB_2042_SS_ACT sa
where sa.ACT=1 and sa.bsg='TS10' and sa.ss in('CFU','CFB','CFNRY','CFNRC','CFD')
group by sa.imsi
) ssa
where MM.IMSI=SS.IMSI 
and MM.IMSI=ssa.IMSI(+)