Hallo
SQL-Experten,
ich habe zwei einfache Tabellen T1 und T2, die nur je 3 Felder haben:
KNR - INTEGER
LFD - INTEGER
WOCHE - VARCHAR(10)
Beide haben dieselbe Struktur. Für jeden Kunden (KNR) kann es beliebig viele Einträge in beide Tabellen geben. Diese möchte ich jetzt für eine bestimmte Woche zählen. Dazu habe ich folgendes
SQL Statement geschrieben:
SQL-Code:
SELECT KNR, COUNT(KNR) as ANZ, 'K1' as VON FROM tab1
WHERE WOCHE='20/04'
GROUP BY KNR
UNION
SELECT KNR, COUNT(KNR) as ANZ, 'K2' as VON FROM tab2
WHERE WOCHE='20/04'
GROUP BY KNR
Das funktioniert auch, aber ich möchte das Ergebnis gerne in folgender Form:
Code:
KNR ANZ_IN_T1 ANZ_IN_T2
============================
1 2 3
2 0 2
3 4 0
Bekommt jemand das mit
einem SQL Statement hin?
Ich habe es schon mit folgendem Statemet versucht:
SQL-Code:
SELECT T1.KNR, COUNT(T1.KNR), COUNT(T2.KNR) as ANZ FROM tab1 T1
FULL OUTER JOIN tab2 T2 ON T1.KNR=T2.KNR
WHERE T1.WOCHE='20/04' AND T2.WOCHE='20/04'
GROUP BY T1.KNR
aber obwohl ich einen FULL OUTER JOIN habe, erscheint nur der Kunde, der in beiden Tabellen vorkommt.