Hallo,
äh, alles in einer einzigen Abfrage?
Was hast du bis jetzt selbst zustande gebracht? Oder erwartest du, dass man dir hier das fertige Query auf einem Silbertablett serviert?
Ansonsten heissen die Stichworte für dich: DISTINCT, IN, UNION ALL
Wenn du irgendwo NULL sehen willst, dann käme wohl noch ein LEFT OUTER JOIN dazu.
Das mit "groupid" sieht etwas nach Permutation aus.
Ciao, Frank