Ich habe eine Tabelle mit Personen und eine Tabelle mit Clienttypen (verknüpft mit einer dritten Tabelle namens Clienttypendetails), mit denen diese Personen verknüpft sind. Clienttypen können "Freund", "Feind", "Alien" oder "Monster" sein. Manche Leute können mehr als eine davon haben und manche Leute haben keine.SQL-Abfrage zur Ausgabe aller Ergebnisse, aber nur eines bestimmten Werts aus einer Liste ohne Duplizierung
Was ich wirklich zu bekommen versucht, ist ein Ausgang so etwas wie:
ID | Name | Friend | Enemy | Alien | Monster |
35 | John | Friend | -blank- | -blank- | Monster |
42 | Eric | -blank- | -blank- | -blank- | -blank- |
So John ist sowohl ein Freund und ein Monster, während Eric nicht ist. Mit der Frage, die ich versucht habe zu erstellen (nur mit einer Spalte für die Freunde im ersten Augenblick), bekomme ich eine Zeile für alle, aber für diejenigen, die Freunde sind, bekomme ich 2 Zeilen für sie - eine, um zu sagen, dass sie ein Freund und einer sind zu sagen NULL
Macht irgendwas Sinn?
Abfrage unter:
SELECT DISTINCT
cl.ClientID,
cl.dcFirstName,
(SELECT Dwh.DimClientTypes.dctName
WHERE (Dwh.DimClientTypes.dctGuid IN ('52CD80A6-D4D7-4FD3-8AE8-644A40FEC108'))
) AS Friend
FROM Dwh.DimClientTypeDetails
LEFT OUTER JOIN Dwh.DimClientTypes ON Dwh.DimClientTypeDetails.dctdTypeGuid = Dwh.DimClientTypes.dctGuid
LEFT OUTER JOIN Dwh.DimClients AS cl ON Dwh.DimClientTypeDetails.dctdClientGuid = cl.dcClientGUID
Ich bin wirklich nicht sicher, dass der beste Weg, es zu nähern so dass jede Hilfe/Rat sehr dankbar empfangen werden würde.
Dank Lee
Ihre Unterabfrage keine hat ' FROM-Klausel. Das ergibt keinen Sinn. –