簡體   English   中英

將兩個SQL查詢合並為一個

[英]Combine two SQL queries into one

如果這看起來有點含糊,如果我的用語不正確,請原諒我。 我是一名初級/初級網絡工程師,具有非常有限的SQL查詢經驗。 除了這些,我正在處理的是什么?

我正在嘗試在Goldmine(CMS / CRM)中創建一個過濾器,該過濾器通過下面指定的變量過濾結果。

WHERE c1.U_COMPANY > ' ' AND  c1.U_CONTACT > ' ' AND  
     (c1.U_COUNTRY <> 'SOUTH AFRICA') AND  
     (c1.U_CONTACT NOT LIKE '%MANAGER%' OR c1.U_CONTACT IS NULL) AND     
     (c1.U_KEY1 NOT LIKE '%ARCHIVE%' OR c1.U_KEY1 IS NULL) AND 
     (c1.U_KEY1 NOT LIKE '%DOCUMENT%' OR c1.U_KEY1 IS NULL) AND 
     (c1.U_KEY1 NOT LIKE '%SUPPLIER%' OR c1.U_KEY1 IS NULL) AND  
     (c1.U_KEY1 NOT LIKE '%OTHER%' OR c1.U_KEY1 IS NULL) AND
     (c1.U_KEY1 NOT LIKE '%TENANT%' OR c1.U_KEY1 IS NULL)

我需要合並以下內容,但不知道上面的表達在哪里比較安全。

SELECT C1.*
FROM FMBSM.DBO.CONTACT1 C1
INNER JOIN (
    SELECT DISTINCT ACCOUNTNO
    FROM FMBSM.DBO.CONTSUPP
    WHERE (
            CONTSUPP.RECTYPE = 'P'
            AND CONTSUPP.CONTACT = 'E-mail Address'
            )
    ) CS
    ON CS.AccountNo = C1.AccountNo
ORDER BY C1.CONTACT

任何建議將不勝感激。

謝謝,

我認為應該將其放在通常放置WHERE子句的ORDER BY之前的末尾:

SELECT C1.*
FROM FMBSM.DBO.CONTACT1 C1
INNER JOIN (
    SELECT DISTINCT ACCOUNTNO
    FROM FMBSM.DBO.CONTSUPP
    WHERE (
            CONTSUPP.RECTYPE = 'P'
            AND CONTSUPP.CONTACT = 'E-mail Address'
            )
    ) CS
    ON CS.AccountNo = C1.AccountNo
WHERE c1.U_COMPANY > ' ' AND  c1.U_CONTACT > ' ' AND  
     (c1.U_COUNTRY <> 'SOUTH AFRICA') AND  
     (c1.U_CONTACT NOT LIKE '%MANAGER%' OR c1.U_CONTACT IS NULL) AND     
     (c1.U_KEY1 NOT LIKE '%ARCHIVE%' OR c1.U_KEY1 IS NULL) AND 
     (c1.U_KEY1 NOT LIKE '%DOCUMENT%' OR c1.U_KEY1 IS NULL) AND 
     (c1.U_KEY1 NOT LIKE '%SUPPLIER%' OR c1.U_KEY1 IS NULL) AND  
     (c1.U_KEY1 NOT LIKE '%OTHER%' OR c1.U_KEY1 IS NULL) AND
     (c1.U_KEY1 NOT LIKE '%TENANT%' OR c1.U_KEY1 IS NULL)
ORDER BY C1.CONTACT

暫無
暫無

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

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