Может ли кто-нибудь помочь мне? Пример: Проблема, с которой я сталкиваюсь, - это когда учетная запись имеет AV.Query = 'PN4', AV.Response = 'Y', AV.Query = 'FL1' и AV.Response = 'Y', результат должен бытьSQL CASE Logic Issue
PStatus IStatus
4 2
Однако я получаю
PStatus IStatus
4 5
5 2
Он выбирает «5» все время на противоположной колонке.
SELECT distinct A.AcctNum,
CASE
WHEN O.Order = 'NEI2' THEN '1'
WHEN AV.Query IN ('PNE1','PNE2') AND AV.Response = 'Y' THEN '2'
WHEN AV.Query = 'PN20' AND AV.Response = 'Y' THEN '3'
WHEN AV.Query = 'PN4' AND AV.Response = 'Y' THEN '4'
ELSE '5'
END AS [PStatus],
CASE
WHEN O.Order IN ('DO2','FL25','VACHP') THEN '1'
WHEN AV.Query = 'FL1' AND AV.Response = 'Y' THEN '2'
WHEN AV.Query = 'REF' AND AV.Response = 'Y' THEN '3'
WHEN AV.Query IN ('FL2','FL6','NEU.G','HE.B') AND AV.Response = 'Y' THEN '4'
WHEN AV.Query = 'NOA' AND AV.Response = 'Y' THEN '6'
ELSE '5'
END AS [IStatus]
FROM AData AS AD
INNER JOIN AVisit AS AV
ON AD.Visit = AV.Visit
AND AV.QueryID IN ('PNE1','PNE2','PN20','PN4','FL1','REF','FL2','FL6','NEU.G','HE.B','NOA')
LEFT JOIN Order AS O
ON AD.Visit = O.Visit
AND O.Order IN ('NEI2','DO2','FL25','VACHP');
Можете ли вы установить скрипт sql с вашими данными, поскольку его очень сложно проанализировать без данных? – DevelopmentIsMyPassion
Что такое sql скрипка? Спасибо. – Bulbul
Перейдите на этот сайт и создайте таблицу и вставьте данные. Когда закончите, дайте нам URL-адрес http://www.sqlfiddle.com/ – DevelopmentIsMyPassion