【问题标题】:SQL QUERY CASE WHEN EXISTS ADD MULTIPLE存在时的SQL查询案例添加多个
【发布时间】:2020-04-22 12:06:20
【问题描述】:

我需要再添加一个子查询以检查 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

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

【问题讨论】:

  • 样本数据、所需结果和适当的数据库标签都会有所帮助。
  • 您的问题不清楚:您是否尝试从 InvoiceData 表中检查哪些客户是 Existing/OMP 客户?唯一可以标记它们的方法是基于带有 join 的 case 语句?

标签: sql case sql-server-2016


【解决方案1】:

如果我理解正确,我相信您可以使用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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-10
    • 1970-01-01
    • 1970-01-01
    • 2015-02-15
    • 1970-01-01
    • 2014-07-12
    相关资源
    最近更新 更多