![]() |
Datenbank: MSSQL • Version: 2005 • Zugriff über: ADO
Wie kann ich tabellenübergreifende Daten einlesen?
Moin,
die query:
Delphi-Quellcode:
Wie kann ich die Daten von Tabelle Antragsteller1 UND Akten übernehmen?
'select * from Akten left join Antragsteller1 on Akten.Aktennr = Antragsteller1.zu_Akte where Aktennr ='+ inttostr(aktennr);
_query.sql.Text := _stmp; _query.open; if eof then begin showmessage('Keine Daten vorhanden'+#10#13+'Sollte eigentlich hier nicht vorkommen!'); end else begin with frmmain do begin edt_aktennr.value := aktennr; edt_antragsteller_titel.text := FieldByName('Antragsteller1.Titel').asstring; => hier haperts Gruss EL |
Re: Wie kann ich tabellenübergreifende Daten einlesen?
Hallo,
hast du dir das Ergebnis deines Selects mal angesehen ? Wahrscheinlich gibt es "Titel" in beiden Tabellen Select Akten.*, Antragsteller1.Titel as AST_Titel from Akten left join Antragsteller1 Zugriff dann über FieldByName('AST_Titel').AsString Heiko |
Re: Wie kann ich tabellenübergreifende Daten einlesen?
Zitat:
ne - Titel gibt es nur einmal Gruss EL |
Re: Wie kann ich tabellenübergreifende Daten einlesen?
Hallo,
dann halt nur FieldByName('Titel').AsString Heiko |
Re: Wie kann ich tabellenübergreifende Daten einlesen?
Zitat:
japp .. das wars. So einfach ... und ich denk da wer weiß, was man da machen muss.... Danke! Gruss EL |
Re: Wie kann ich tabellenübergreifende Daten einlesen?
Moin,
ich hab jetzt noch ein weiteres Problem bekommen, nachdem ich das ganze ein wenig erweitern wollte: Die Query frisst er:
Delphi-Quellcode:
dann aber bei:
_stmp := 'Select * from Akten Ak inner join Antragsteller1 A1 on A1.zu_Akte=Ak.Aktennr '
+' where Ak.Aktennr ='+ inttostr(aktennr);
Delphi-Quellcode:
kennt er A1.Titel etc. nicht. (Das Feld A1.Titel wurde nicht gefunden) :?:
edt_antragsteller_titel.text := FieldByName('A1.Titel').asstring;
edt_antragsteller_vorname.text := FieldByName('A1.Vorname').asstring; edt_antragsteller_nachname.text := FieldByName('A1.Nachname').asstring; edt_antragsteller_geburtsdatum.text := FieldByName('A1.Geburtsdatum').asstring; Gruss EL |
Re: Wie kann ich tabellenübergreifende Daten einlesen?
Hallo,
in der Ergebnismenge gibt es keine qualifizierten (zweistufigen) Namen. Freundliche Grüße |
Re: Wie kann ich tabellenübergreifende Daten einlesen?
Zitat:
Unter dieser Nummer (23) ist ein Datensatz in jeder Table zu finden. Gruss EL |
Re: Wie kann ich tabellenübergreifende Daten einlesen?
Zitat:
Delphi-Quellcode:
FieldByName('Titel').asstring;
|
Re: Wie kann ich tabellenübergreifende Daten einlesen?
Zitat:
Delphi-Quellcode:
Gruss
_stmp := 'Select * from Akten Ak inner join Antragsteller1 A1 on A1.zu_Akte=Ak.Aktennr '
+' inner join Antragsteller2 A2 on A2.zu_Akte=Ak.Aktennr where Ak.Aktennr ='+ inttostr(aktennr); EL |
Re: Wie kann ich tabellenübergreifende Daten einlesen?
Dann mach Dir die Mühe und ersetz den Stern durch die benötigten Feldnamen, denen Du dann verschiedene Aliase zuordnen kannst.
|
Re: Wie kann ich tabellenübergreifende Daten einlesen?
Hallo,
Mühe machen ist hier auch die einzige Möglichkeit Select Akten.*, A1.Titel As A1_Titel, A2.Titel As As_Titel Zugriff über FieldByName('A1_Titel').AsString FieldByName('A2_Titel').AsString Das Akten.* ist auch noch diskussionswürdig, wenn nicht ale Felder benötigt werden. Heiko |
Re: Wie kann ich tabellenübergreifende Daten einlesen?
Zitat:
so brauche ich z.B. aus der Table Akten die Felder Aktennr, SenderIP, eMail .... Table Antragsteller1 die Felder Titel, Vornam, Name ...bla.. Table Antragsteller2 die Felder Titel, Vornam, Name ...bla.. Dank vorab und Gruss EL |
Re: Wie kann ich tabellenübergreifende Daten einlesen?
Schau mal einen Post vor Deinem ;)
|
Re: Wie kann ich tabellenübergreifende Daten einlesen?
Zitat:
Gruss EL |
Re: Wie kann ich tabellenübergreifende Daten einlesen?
Der Join hat doch mit Deinem Problem jetzt nichts zu tun :gruebel: . Aber mal ein Phantasie-Beispiel:
SQL-Code:
Nun kannst Du die einzelnen Felder gezielt über ihren Alias ansprechen.
SELECT T1.Name AS ErsterName, T1.Vorname AS ErsterVorname, T2.Name AS ZweiterName, T2.Vorname AS ZweiterVorname
FROM Tabelle1 T1 JOIN Tabell2 T2 ON T1.ID = T2.ID WHERE irgendwas |
Re: Wie kann ich tabellenübergreifende Daten einlesen?
Zitat:
Delphi-Quellcode:
Der mehrteilige Bezeichner "Antragsteller1.zu_Akte" konnte nicht gebunden werden. *grummel*
_stmp := 'Select Akten.*,Antragsteller1.zu_Akte as A1_zuAkte,'
+'Antragsteller1.Titel as A1_Titel, Antragsteller1.Vorname as A1_Vorname,' +'Antragsteller1.Nachname as A1_Nachname, Antragsteller1.Geburtsdatum as A1_Geburtsdatum,' +'Antragsteller1.Strasse as A1_Strasse, Antragsteller1.Hausnr as A1_Hausnr,' +'Antragsteller1.PLZ as A1_PLZ, Antragsteller1.Ort as A1_Ort,' +'Antragsteller1.Familienstand as A1_Familienstand, Antragsteller1.Brutto as A1_Brutto ' +'from Antragsteller1 A1 join Akten on Akten.Aktennr=Antragsteller1.zu_Akte ' +'where Aktennr ='+ inttostr(aktennr); Hinzu kommt, das wenn das funzt auch noch Antragsteller2 genjoined werden muss. Gruss EL |
Re: Wie kann ich tabellenübergreifende Daten einlesen?
Wenn Du schon einen Alias vergibst, dann nutz ihn auch :zwinker: . Und ich wäre Dir verbunden, wenn Du den reinen SQL-Code posten würdest, das ließe sich besser lesen.
[edit] Rechtschreibung [/edit] |
Re: Wie kann ich tabellenübergreifende Daten einlesen?
Zitat:
Delphi-Quellcode:
noch das:
from Antragsteller1 A1 join Akten on Akten.Aktennr=A1_zuAkte '
+'where Aktennr =23';
Delphi-Quellcode:
funzen
from Antragsteller1 A1 join Akten on Akten.Aktennr=A1.zuAkte '
+'where Aktennr =23'; Gruss EL |
Re: Wie kann ich tabellenübergreifende Daten einlesen?
Und so?
SQL-Code:
Select Akten.*,A1.zu_Akte as A1_zuAkte,
A1.Titel as A1_Titel, A1.Vorname as A1_Vorname, A1.Nachname as A1_Nachname, A1.Geburtsdatum as A1_Geburtsdatum, A1.Strasse as A1_Strasse, A1.Hausnr as A1_Hausnr, A1.PLZ as A1_PLZ, A1.Ort as A1_Ort, A1.Familienstand as A1_Familienstand, A1.Brutto as A1_Brutto from Antragsteller1 A1 join Akten on Akten.Aktennr=A1.zu_Akte where Akten.Aktennr = 1 |
Re: Wie kann ich tabellenübergreifende Daten einlesen?
Zitat:
Nun die allesentscheidene Frage: Wie baue ich da nun Antragsteller2 noch mit ein :gruebel: - Antragsteller2 muss nicht zwingend vorhanden sein! => Der Hauptindex ist übrigens die Table Akten! Gruss EL |
Re: Wie kann ich tabellenübergreifende Daten einlesen?
SQL-Code:
Getippt und nicht getestet.
Select Akten.*,A1.zu_Akte as A1_zuAkte,
A1.Titel as A1_Titel, A1.Vorname as A1_Vorname, A1.Nachname as A1_Nachname, A1.Geburtsdatum as A1_Geburtsdatum, A1.Strasse as A1_Strasse, A1.Hausnr as A1_Hausnr, A1.PLZ as A1_PLZ, A1.Ort as A1_Ort, A1.Familienstand as A1_Familienstand, A1.Brutto as A1_Brutto, A2.zu_Akte as A2_zuAkte, A2.Titel as A2_Titel, A2.Vorname as A2_Vorname, A2.Nachname as A2_Nachname, A2.Geburtsdatum as A2_Geburtsdatum, A2.Strasse as A2_Strasse, A2.Hausnr as A2_Hausnr, A2.PLZ as A2_PLZ, A2.Ort as A2_Ort, A2.Familienstand as A2_Familienstand, A2.Brutto as A2_Brutto from Antragsteller1 A1 join Akten on Akten.Aktennr=A1.zu_Akte left join Antragsteller2 A2 on Akten.Aktennr=A2.zu_Akte where Akten.Aktennr = 1 |
Re: Wie kann ich tabellenübergreifende Daten einlesen?
Zitat:
Bis hierhin kapiert. Mir fehlt jetzt nur noch der Punkt, wo ich , A2.Titel as A2_Titel etc. hineinpacken muss Vielen Dank! Gruss EL |
Re: Wie kann ich tabellenübergreifende Daten einlesen?
Jetzt verstehe ich nicht, was Du meinst. Ich mache erstmal Feierabend und kann evtl. in einer halben Stunde nochmal nachsehen :) , falls Du bis dahin gepostet hast.
|
Re: Wie kann ich tabellenübergreifende Daten einlesen?
Zitat:
Vielen Dank nochmal! Gruss EL |
Re: Wie kann ich tabellenübergreifende Daten einlesen?
Sind die beiden Tabellen wirklich identisch? Oder gibt des das Feld in Antragsteller2 gar nicht?
|
Re: Wie kann ich tabellenübergreifende Daten einlesen?
Zitat:
=> ich bin erstmal off, muss zum Schießen. Gegen ca. 20:30 wieder da. Gruss EL |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:54 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 by Thomas Breitkreuz