将两个 SQL 查询合并为一个
Combine two SQL queries into one
如果这看起来有点含糊或者我的术语不正确,请原谅我。我是一名 associate/junior 级别的网络工程师,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
任何建议将不胜感激。
谢谢,
罗布
我认为把它放在最后,在 ORDER BY
之前应该没问题,这里通常会放置一个 WHERE
子句:
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
如果这看起来有点含糊或者我的术语不正确,请原谅我。我是一名 associate/junior 级别的网络工程师,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
任何建议将不胜感激。
谢谢,
罗布
我认为把它放在最后,在 ORDER BY
之前应该没问题,这里通常会放置一个 WHERE
子句:
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