Hallo,
ich habe zwei Tabellen. Ich möchte zwei abfragen unabhängig voneinander nebeneinander darstellen. die einzige bezugsrgröße sein ein ID feld sein. Ich übertrag das mal auf einen simplifizierten Fall und erläutere es mal.
Tabelle Konto mit den Spalten ID, Name, Vorname usw
1 Müller Max
2 Mustermann Manfred
sowie
Tabelle Bewegungen mit den Spalten ID, Bewegungsart, Betrag, Konto_ID usw.
1 Zahlung 12 1
2 Gutschrift 20 1
3 Zahlung 30 1
4 Zahlung 50 1
5 Zahlung 32 1
usw
Jetzt möchte ich gerne eine Darstellung haben, die folgende Darstellungen zusammen fasst
Select * from Konto join Bewegung where bewegung.Bewegungsart like 'G%'
Select * from Konto join Bewegung where bewegung.Bewegungsart like 'Z%'
ABER und das ist große aber die Darstellung soll wie folgt aussehen
Kontoinhaber, Gutschriften, Zahlungen
Max Müller, 20 , 12
Max Müller, (null) , 30
Max Müller, (null) , 50
Max Müller, (null) , 32
Oder aber wenn es mehr Zahlungen als Gutschriften gibt
Max Müller, 20 , 12
Max Müller, 30 , 30
Max Müller, 25 , (null)
Max Müller, 85 , (null)
Also es soll immer die erste Zeile mit den ersten Eintrag von Zahlung und Gutschrift gefüllt sein und in der zweiten Zahlung dann entsprechend zweite Zahlung und zweite Gutschrift. Die Zeilenanzahl soll max(Zahlungen Anzahl, Gutschrift Anzahl) sein. Wenn keine Zahlung aber Gutschriften mehr übrig ist sollen die restlichen Spalten halt mit null gefüllt weden oder umgekehert.
Leider erzeugt meine Kommando bei Beispiel 2 folgende Darstellung
Max Müller, 20 , 12
Max Müller, 20 , 30
Max Müller, 30 , 12
Max Müller, 30 , 30
Max Müller, 25 , 12
Max Müller, 25 , 30
Max Müller, 85 , 12
Max Müller, 85 , 30
Mein Kommando lautet
select * from konto
outer apply (select * from bewegung where bewegung.konto_id = konto.id and bewegung.Bewegungsart like 'Z%') as Zahlungen
outer apply (select * from bewegung where bewegung.konto_id = konto.id and bewegung.Bewegungsart like 'G%') as gutschriften
Weiß jemand Rat? Ich bin über jeden Hinweiß glücklich.