Je suis en train de faire quelque chose de similaire à How can I improve this SQL query?avec la logique de procédure stockée
Cependant, il y a une logique Essentiellement j'ai une liste d'ID qui pourraient avoir plusieurs valeurs qui leur sont associées, les valeurs étant Oui, Non ou une autre chaîne Pour l'ID x, si l'une des valeurs est un Oui, x doit être Oui, si elles sont toutes Non, il doit être Non, si elles contiennent d'autres valeurs mais oui et non, afficher cette valeur. Je veux seulement retourner 1 ligne par ID, pas de doublons.
mais dans ma logique si toutes les valeurs sont oui, afficher oui, si toutes les valeurs sont affichent pas alors non, si elle est un mélange de oui, non ou quoi que ce soit l'affichage autre mélange
DECLARE @tempTable table (ID int, Val varchar(1))
INSERT INTO @tempTable (ID, Val) VALUES (10, 'Y')
INSERT INTO @tempTable (ID, Val) VALUES (11, 'N')
INSERT INTO @tempTable (ID, Val) VALUES (11, 'N')
INSERT INTO @tempTable (ID, Val) VALUES (12, 'Y')
INSERT INTO @tempTable (ID, Val) VALUES (12, 'Y')
INSERT INTO @tempTable (ID, Val) VALUES (12, 'Y')
INSERT INTO @tempTable (ID, Val) VALUES (13, 'N')
INSERT INTO @tempTable (ID, Val) VALUES (14, 'Y')
INSERT INTO @tempTable (ID, Val) VALUES (14, 'N')
INSERT INTO @tempTable (ID, Val) VALUES (15, 'Y')
INSERT INTO @tempTable (ID, Val) VALUES (16, 'Y')
INSERT INTO @tempTable (ID, Val) VALUES (17, 'F')
INSERT INTO @tempTable (ID, Val) VALUES (18, 'P')
SELECT DISTINCT t.ID, COALESCE(t2.Val, t3.Val, t4.Val)
FROM @tempTable t
LEFT JOIN
(
SELECT ID, Val
FROM @tempTable
WHERE Val = 'Y'
) t2 ON t.ID = t2.ID
LEFT JOIN
(
SELECT
ID, Val FROM @tempTable
WHERE Val = 'N'
) t3 ON t.ID = t3.ID
LEFT JOIN
(
SELECT ID, Val
FROM @tempTable
WHERE Val <> 'Y' AND Val <> 'N'
) t4 ON t.ID = t4.ID
Update dbo.households
SET dbo.households.code = #TempTable.code
FROM #TempTable
WHERE dbo.households.id = #TempTable.id
quelle est la question? – akonsu
pour une raison quelconque, si un résultat vient comme N, N, P il montre encore N ou s'il sort Y, N il montrera Y. Je veux Y, Y pour sortir comme Y et N, N pour sortir comme N et tout le reste à sortir comme 'M' –