Ik ben op zoek naar het volgende. In onze database zijn personen gekoppeld aan (mogelijk meerdere) groepen. Om een overzicht te krijgen van de personen en hun groepen wil ik deze gegevens uit de database halen. Dit lukt als ik een join gebruik:
Het probleem wat ik nu heb is dat deze query voor ieder persoon meerdere records teruggeeft, nl per groep. Wat ik wil is dat er per persoon maar 1 record opgeleverd wordt, en de koppeling met groepen als kolommen in dat record wordt opgeleverd, zoiets als dit:
In onderstaand voorbeeld wordt dit alleen voor groep met id -1123 gedaan, maar ik wil dus voor alle groepen zien of de persoon eraan gekoppeld is of niet.
Heeft iemand ideeen? Een oplossing zou zijn om hier een tijdelijke tabel voor aan te maken, maar het mooiste zou zijn als dit in 1 (of een paar, het komt toch in een SP) queries kan.
ik zat al te denken om bovenstaand voorbeeld te gebruiken met het "as" statement als dynamisch, maar dat gaat ook niet werken. zoiets als dit:
SQL:
1
2
3
4
5
6
| select * from personen p inner join persoongroepkopppelingen pg on p.PersoonID = pg.PersoonID inner join groepen g on pg.GroepID = g.GroepID |
Het probleem wat ik nu heb is dat deze query voor ieder persoon meerdere records teruggeeft, nl per groep. Wat ik wil is dat er per persoon maar 1 record opgeleverd wordt, en de koppeling met groepen als kolommen in dat record wordt opgeleverd, zoiets als dit:
SQL:
1
2
3
4
5
6
7
| select * , isNull((Select 1 from persoongroepkopppelingen pg where p.PersoonID = pg.PersoonID and pg.GroepID = -1123 --bijvoorbeeld voor groep -1123 ), 0) as "-1123" from personen_v02 p |
In onderstaand voorbeeld wordt dit alleen voor groep met id -1123 gedaan, maar ik wil dus voor alle groepen zien of de persoon eraan gekoppeld is of niet.
Heeft iemand ideeen? Een oplossing zou zijn om hier een tijdelijke tabel voor aan te maken, maar het mooiste zou zijn als dit in 1 (of een paar, het komt toch in een SP) queries kan.
ik zat al te denken om bovenstaand voorbeeld te gebruiken met het "as" statement als dynamisch, maar dat gaat ook niet werken. zoiets als dit:
SQL:
1
| select data as data2 from tabel1 --waarbij data2 dus een kolom met data uit tabel1 is |
Problem Exists Between Chair And Keyboard