【发布时间】: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