簡體   English   中英

SQL查詢左外部聯接與特定記錄

[英]SQL Query Left Outer Join with specific record

我有這樣的查詢

SELECT P9_IR259_FI, FX_IR259_SYS_PROD_TYP, FX_IR259_SLS_POS, FX_IR259_SLS_CHNL, PX_IR259_OFC_CDE, FX_IR259_SPR_OFC_CDE, FX_IR259_NAME, SUPERNAME, SUPERCDE, SUPERPOS 
FROM IR259 K 
     LEFT OUTER JOIN
         (SELECT FX_IR259_NAME AS SUPERNAME ,FX_IR259_SLS_POS AS SUPERPOS, PX_IR259_OFC_CDE AS SUPERCDE 
         FROM IR259 M 
         WHERE P9_IR259_FI = 75214 AND FX_IR259_SLS_POS = 2 AND FX_IR259_NAME LIKE 'ME%'
         ) ON K.FX_IR259_SPR_OFC_CDE = SUPERCDE 
 WHERE 
    FX_IR259_SLS_POS = '1' 
    AND FX_IR259_SLS_CHNL = 'BRO' 
    AND F9_IR259_CRE_TMS > 00000000000000000 
ORDER BY FX_IR259_SLS_POS, FX_IR259_SPR_OFC_CDE, FX_IR259_SLS_CHNL

但結果似乎不正確,我只想顯示SUPERNAME像“ ME%”

在此處輸入圖片說明

結果顯示SUPERNAME帶有“ ME%”,但其他記錄也顯示。

謝謝你的建議

您需要向where子句添加另一個過濾器。

WHERE 
    FX_IR259_SLS_POS = '1' 
    AND FX_IR259_SLS_CHNL = 'BRO' 
    AND F9_IR259_CRE_TMS > 00000000000000000 
    AND SUPERNAME LIKE 'ME%'

您只需要在where子句中添加另一個條件

SELECT P9_IR259_FI, FX_IR259_SYS_PROD_TYP, FX_IR259_SLS_POS, FX_IR259_SLS_CHNL, PX_IR259_OFC_CDE, FX_IR259_SPR_OFC_CDE, FX_IR259_NAME, SUPERNAME, SUPERCDE, SUPERPOS 
FROM IR259 K 
    LEFT OUTER JOIN
         (SELECT FX_IR259_NAME AS SUPERNAME ,FX_IR259_SLS_POS AS SUPERPOS, PX_IR259_OFC_CDE AS SUPERCDE 
          FROM IR259 M 
         WHERE P9_IR259_FI = 75214 AND FX_IR259_SLS_POS = 2 AND FX_IR259_NAME LIKE 'ME%'
         ) ON K.FX_IR259_SPR_OFC_CDE = SUPERCDE 
 WHERE 
    FX_IR259_SLS_POS = '1' 
    AND FX_IR259_SLS_CHNL = 'BRO' 
    AND F9_IR259_CRE_TMS > 00000000000000000 
    AND SUPERNAME LIKE 'ME%'
ORDER BY FX_IR259_SLS_POS, FX_IR259_SPR_OFC_CDE, FX_IR259_SLS_CHNL
SELECT P9_IR259_FI, FX_IR259_SYS_PROD_TYP, FX_IR259_SLS_POS, FX_IR259_SLS_CHNL, PX_IR259_OFC_CDE, FX_IR259_SPR_OFC_CDE, FX_IR259_NAME, SUPERNAME, SUPERCDE, SUPERPOS 
FROM 
(select * from IR259 where SUPERNAME like 'ME%') K 
     LEFT OUTER JOIN
         (SELECT FX_IR259_NAME AS SUPERNAME ,FX_IR259_SLS_POS AS SUPERPOS, PX_IR259_OFC_CDE AS SUPERCDE 
         FROM IR259 M 
         WHERE P9_IR259_FI = 75214 AND FX_IR259_SLS_POS = 2 AND FX_IR259_NAME LIKE 'ME%'
         ) ON K.FX_IR259_SPR_OFC_CDE = SUPERCDE 
 WHERE 
    FX_IR259_SLS_POS = '1' 
    AND FX_IR259_SLS_CHNL = 'BRO' 
    AND F9_IR259_CRE_TMS > 00000000000000000 
ORDER BY FX_IR259_SLS_POS, FX_IR259_SPR_OFC_CDE, FX_IR259_SLS_CHNL

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM