Daten aus 2 Datensätzen in einem ausgeben

Hallo Leute,

ich bin SQL-Anfänger und wäre dankbar für eure Hilfe bei der Erstellung folgender SQL-Abfrage:

Ich habe eine Tabelle namens Beleg mit folgenden Spalten:

Belegnummer; Belegtyp; Bezeichnung; Datum; Vertreter
R1; R; Rechnung; 01.01.2008; 1
R2; R; Rechnung; 01.01.2008; 2
G3; G; Gutschrift; 02.01.2008; 1
T1; T; Teilrechnung; 03.01.2008; 3
K1; K; Kassenbeleg; 04.01.2008; 1


Diese Tabelle soll wie folgt mittels SQL aus der oben dargestellten SQL-dB dargestellt werden:

Rechnungsnr;Belegtyp; Bezeichnung; Datum; Vertreter;Gutschrift
R1; R; Rechnung; 01.01.2008; 1; -
R2; R; Rechnung; 01.01.2008; 2; G3


Es sollen nur rechnungen dargestellt werden und dazugehörige Gutschriften. Es sollen aber auch die Rechnungen angezeigt werden, die ohne Gutschrift sind.

Mein jetziger Code zeigt mir nur die Rechnungen mit Gutschrift, jedoch möchte ich alles sehen. Dieser sieht wie folgt aus:


select distinct(b.Belegnummer) as Rechnung, p.belegnummer as Gutschrift
from belegp b left outer join belegp p on (b.kennung = p.vorgaenger)
where p.belegtyp = ‘G’ and b.belegtyp = ‘R’



Könntet ihr mir helfen diesen Code anzupassen, sodass es passt??


Lieben Dank für eure Hilfe.

JUPP

Ich glaube, Dein Datenmodell stimmt nicht. Du hast keine eindeutige Zuordnung einer Gutschrift zu einer Rechnung. Ich würde Gutschriften extra speichern, mit einer FK-Beziehung zur Rechnung.

Diese Tabelle soll wie folgt mittels SQL aus der oben dargestellten SQL-dB dargestellt werden:

Rechnungsnr;Belegtyp; Bezeichnung; Datum; Vertreter;Gutschrift
R1; R; Rechnung; 01.01.2008; 1; -
R2; R; Rechnung; 01.01.2008; 2; G3

Wieso gehört Gutschrift 3 zur Rechnung 2? Da sind sogar unterschiedliche Vertreter. Was machst Du, wenn es 2 oder 3 Gutschriften gibt?

Ich schlage vor, Dein Datenmodell zu überarbeiten.

Andreas