![]() |
Mehrer Spalten in einer Ausgeben
Hi! Ich hab folgendes Problem ich möchte in einer Datenbank einen bestimmten Eintrag suchen bei dem ein bestimmter Eintrag aus der anderen Tabelle ausgelesen wird, wo ein Zusammenhängender Key vorhanden ist, das heißt ich kann der Ordnungsnummer in Tabelle Betrieb mehrer Vorlieben zuweisen. Wenn jetzt wirklich der fall eintreten sollte dass mehrere Einträge vorhanden sind möchte ich die Einträge in einer Splate und durch ", " getrennt ausgeben lassen. Aber wenn ich jetzt z.B. 2 Einträge habe gibt mir SQL dann 2 Zeilen aus, wo eigetlich nur eine sein sollte! Ich wüsste auch nicht wo ich anfangen sollte!? Kann mir einer helfen?
SQL-Code:
SELECT b.Ordnungsnummer As "Nr.",
b.Name As "Betrieb", b.Strasse As "Straße", b.Hausnummer As "Hausnr.", PLZ, b.Ort As "Ort", Vorlieben As "Vorlieben", FROM Betrieb b, Standort, Betrieb_Vorl WHERE Ordnungsnummer LIKE '1' AND Betrieb.PLZ = Standort.PLZ |
Re: Mehrer Spalten in einer Ausgeben
Moment...meinst du, du bekommst mehr Datenzeilen zurück? Das heißt, wenn es 3 Vorlieben gibt bekommst du 3 Datensätze?
|
Re: Mehrer Spalten in einer Ausgeben
Ja genau! Bei 4 ... 4 usw. Dabei sind alle Zeilen gleich nur bei den Vorlieben ist es dann anders! Und das möchte ich ja nicht! Ich möchte dass alle Vorlieben in einem Datensatz stehen!
|
Re: Mehrer Spalten in einer Ausgeben
Das geht soviel ich weiß nicht. Du musst es so machen:
Heraussuchen aller Datensätze, herausfinden der Anzahl. Bei erstem Datensatz alle Felder setzen, bei nachfolgenden das Vorliebenfeld einfach an die entsprechende Variable anhängen. Ich denke das ist was du brauchst,oder? Wenn du willst stelle ich auch Code zusammen... |
Re: Mehrer Spalten in einer Ausgeben
Schade! Wärre nett wenn du das machen könntest! Danke
|
Re: Mehrer Spalten in einer Ausgeben
Delphi-Quellcode:
Ich hoffe du hast es so gemeint, nur mit SQL alleine kann man das glaub ich nicht lösen.
Query1.SQL.Clear;
Query1.SQL.Add('SELECT Ordnungsnummer FROM Betrieb'); Query1.Open; Query1.FetchAll; for i := 1 to Query1.RecordCount do begin Query1.RecNo := i; Query2.SQL.Clear; Query2.SQL.Add('SELECT b.Ordnungsnummer As "Nr.",'+ 'b.Name As "Betrieb",'+ 'b.Strasse As "Straße",'+ 'b.Hausnummer As "Hausnr.",'+ 'PLZ,'+ 'b.Ort As "Ort",'+ 'Vorlieben As "Vorlieben",'+ 'FROM Betrieb b, Standort, Betrieb_Vorl'+ 'WHERE Ordnungsnummer LIKE '+Query1.FieldByName('Ordnungsnummer').AsString+' AND Betrieb.PLZ = Standort.PLZ'); Query2.Open; Query2.FetchAll; Vorlieben[i-1] := ''; for j := 1 to Query2.RecordCount do begin //Andere Werte setzen Vorlieben := Vorlieben+', '+Query2.FieldByName('Vorlieben').AsString; end; Query2.Close; if Length(Vorlieben[i-1]) > 3 then Delete(Vorlieben[i-1],1,3); end; Query1.Close; |
Re: Mehrer Spalten in einer Ausgeben
Jo Danke! Ich guck mal wie ich das jetzt einsetze!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:13 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz