繁体   English   中英

SQL 查询案例当存在时添加多个

[英]SQL QUERY CASE WHEN EXISTS ADD MULTIPLE

我需要再添加一个子查询以检查下面的customertype列是查询如何添加到我的原始查询

CASE 
  WHEN EXISTS (
      SELECT ItemCode
      FROM ORIN
      INNER JOIN RIN1 ON ORIN.DocEntry = RIN1.DocEntry
      WHERE CardCode = X.CardCode
        AND ItemCode = X.ItemCode
        AND ORIN.DocDate < X.[Trans Date]
        AND year(X.[Trans Date]) >= year(getdate()) - 4
      )
    THEN 'Existing'
  ELSE 'OMP'
  END )

以下是我的原始查询

SELECT 
   X.#
  ,(
    CASE 
      WHEN EXISTS (
          SELECT ItemCode
          FROM OINV
          INNER JOIN INV1 ON OINV.DocEntry = INV1.DocEntry
          WHERE CardCode = X.CardCode
            AND ItemCode = X.ItemCode
            AND OINV.DocDate < X.[Trans Date]
            AND year(X.[Trans Date]) >= year(getdate()) - 4
          )
        THEN 'Existing'
      ELSE 'OMP'
      END
    ) AS CustomerType
FROM InvoiceData X

我的目标是两个检查都存在于客户类型列中。 它基本上是两个 select 查询检查

如果我理解正确,我相信您可以使用AND包含两个子查询。

SELECT 
   X.#
  ,(
    CASE 
      WHEN 
        EXISTS 
          (
          SELECT ItemCode
          FROM OINV
          INNER JOIN INV1 ON OINV.DocEntry = INV1.DocEntry
          WHERE CardCode = X.CardCode
            AND ItemCode = X.ItemCode
            AND OINV.DocDate < X.[Trans Date]
            AND year(X.[Trans Date]) >= year(getdate()) - 4
          )
        AND
        EXISTS 
          (
          SELECT ItemCode
          FROM ORIN
          INNER JOIN RIN1 ON ORIN.DocEntry = RIN1.DocEntry
          WHERE CardCode = X.CardCode
            AND ItemCode = X.ItemCode
            AND ORIN.DocDate < X.[Trans Date]
            AND year(X.[Trans Date]) >= year(getdate()) - 4
          )
        THEN 'Existing'
      ELSE 'OMP'
      END
    ) AS CustomerType
FROM InvoiceData X

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM