Einzelnen Beitrag anzeigen

citybreaker
(Gast)

n/a Beiträge
 
#1

SQL Abfrage über zwei Tabellen

  Alt 8. Mai 2012, 09:34
Datenbank: mssql • Version: 2008 • Zugriff über: zeos
Hallo zusammen ,

ich hab mal wieder ein Problem was eine SQL-Abfrage angeht. Ich habe in der Abfrage zwei Tabellen verbunden bekomme aber
nicht das Ergebnis was ich möchte.
Tabelle1 hat die Spalten ID, Kunde, Nummer, Klasse, ... und Tabelle2 ID, Tabelle1ID, Status, Datum, ...

Es kommt aber vor das in Tabelle2 nicht immer ein Eintrag für Tabelle1 existiert.
Angezeigt haben möchte ich das Folgendermaßen.

ID (Tabelle1) | Kunde | Nummer | Status (nur wenn in tabelle2 vorhanden ansonsten leer lassen)

Jetzt zum Problem. Wenn kein passender Eintrag in Tabelle2 vorhanden ist wird einfach der nächste Wert vom Status genommen und reingeschrieben
und alles verschiebt sich.
Code:
SELECT Tabelle1.ID, Tabelle1.Kunde, Tabelle1.Nummer, Tabelle2.Status FROM Tabelle1, Tabelle2
Wie Frage ich das ganze am besten ab, dass Stauts entsprechend leer gelassen wird? Steh nen bisschen aufm Schlauch.

In Delphi lasse ich mir das ganze dann in einem ListView anzeigen.
Delphi-Quellcode:
TZQuery1.SQL.Text := 'SELECT Tabelle1.ID, Tabelle1.Kunde, Tabelle1.Nummer, Tabelle2.Status FROM Tabelle1, Tabelle2';
TZQuery1.Active := true;
TZQuery1.Open;

while not TZQuery1.eof do begin
   ListItem := ListView.Items.Add;
   ListItem.Caption := TZQuery1.FieldByName('ID').AsString;
   ListItem.SubItems.Add(TZQuery1.FieldByName('Kunde').AsString);
   ListItem.SubItems.Add(TZQuery1.FieldByName('Nummer').AsString);
   ListItem.SubItems.Add(TZQuery1.FieldByName('Status').AsString);
   DataSet.Next;
end;

...

Geändert von citybreaker ( 8. Mai 2012 um 09:42 Uhr)
  Mit Zitat antworten Zitat