Kanske någon av er vet hur jag ska skriva om den här frågan för att få önskat resultat?
Det jag vill få ut är alla Partys och deras children (om de har några).
Relationen Parent-Child ligger i tabellen PartyContainment. PartyName/ChildName ligger i tabellen Party och ska joinas in.
Det ska alltså se ut typ såhär:
GLN | PartyName | ChildGLN | ChildName
1 | child#1 | NULL | NULL
2 | child#2 | NULL | NULL
3 | parent#1 | 1 | child#1
3 | parent#1 | 2 | child#2
osv...
Problemet är att jag vill gruppera via ChildGLN men NULL värden i ChildGLN ska inte grupperas för då får jag inte med alla Partys som har NULL som child. Hur åstadkommer jag det på bästa sätt?
SELECT
max(GLN) as GLN
,max(PartyName) as PartyName
,ChildGLN
,max(ChildName) as ChildName
FROM (
SELECT DISTINCT
GLN
,PartyName
,ChildGLN
,NULL as ChildName
FROM
Party p
left outer join PartyContainment pc
on (p.GLN = pc.ParentGLN)
UNION ALL
SELECT
null as GLN
,null as PartyName
,ChildGLN
,PartyName as ChildName
FROM
Party p
join PartyContainment pc
on (p.GLN = pc.ChildGLN)
) as Union
GROUP BY ChildGLN ORDER BY ChildGLN