一條SQL的改寫

flzhang發表於2016-05-22

最近需求中需要實現這樣一個功能

找主活動是未鎖定的,且已確認的子活動資料,表中資料的分佈是這樣的

表中資料存放結構
                主活動1   沒鎖定
                子活動 主11  已確認
                子活動 主22  已確認
                主活動2    鎖定
                子活動 主21  未確認
                子活動 主22  已確認

            1用 NOT EXIST實現

                SELECT T1.ATTR01, T1.ATTR04, T1.MEM_NM
                FROM CHNQLTOWN.3pl T1
                WHERE T1.確認否=TO_CHAR(TRUNC(SYSDATE-1),'YYYYMMDD')
                AND  NOT EXISTS(SELECT 1 FROM 3PL T2 WHERE T2.STAGE IN ('INIT','OVER')

                AND  T1.WEC_OPN_ID=T2.WEC_OPN_ID AND T1.MEM_ID=T1.MEM_ID AND T2.鎖定否='Y')

            2 用關聯查詢
                
                SELECT T1.ATTR01, T1.ATTR04, T1.MEM_NM
                FROM  CHNQLTOWN.3pl T1
                    , CHNQLTOWN.3pl T2
                WHERE T1.WEC_OPN_ID=T2.WEC_OPN_ID AND T1.MEM_ID=T2.MEM_ID
                AND T2.STAGE IN ('INIT','OVER') AND T2.鎖定否= 'N'
                AND T1.確認否=TO_CHAR(TRUNC(SYSDATE-1),'YYYYMMDD')

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/750077/viewspace-2104810/,如需轉載,請註明出處,否則將追究法律責任。

相關文章