Quantcast
Channel: SQL Server Express Forum
Viewing all articles
Browse latest Browse all 484

SQL Abfrage mehere Tabellen nebeneinander

$
0
0

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.


Viewing all articles
Browse latest Browse all 484


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>