Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SQL Abfage auf einen "Berechneten" Feld (https://www.delphipraxis.net/62695-sql-abfage-auf-einen-berechneten-feld.html)

Karstadt 8. Feb 2006 11:24

Datenbank: MYSQL • Version: 4.1 • Zugriff über: Direkt

SQL Abfage auf einen "Berechneten" Feld
 
hallo. Ich habe einen BerechnetenFeld "bezeichnung" erstellt. Mit OnCalcField wird dieser Feld gefüttert

Nun möchte ich ein SQL Anfrage auf diesen Feld starten, bekomme aber eine FMeldung. Column Ubekannt. Liegt das damit, dass dieser Feld nur Virtuel gibt und nicht physikalsich?

Besteht die Möglichkeit eine Abfrage auf einen Berechneten Feld zu starten?

WePo 9. Feb 2006 21:24

Re: SQL Abfage auf einen "Berechneten" Feld
 
Hi,
na so einfach wohl nicht.
Woher soll die query das Feld kennen?
SELECT feld[1]... Feld[n] from table.
Lass doch die query das berechnen mit sum,avg etc.
Das Feld "Bezeichnung" spricht für mich zudem eher für ein lookup-Feld.
Wenn dies aus einer anderen Tablle stammt wär ein join angezeigt.
Werner

mkinzler 9. Feb 2006 21:27

Re: SQL Abfage auf einen "Berechneten" Feld
 
Du kannst das berechnete Feld auch in einem TQuery anlegen, das Feld steht dann aber nicht in der Feldliste des selects.
Zitat:

Das Feld "Bezeichnung" spricht für mich zudem eher für ein lookup-Feld.
Ich vermute das Feld ist eine Verkettung meherer Felder zur Anzeige in z.B. einer ComboBox.

Karstadt 9. Feb 2006 22:27

Re: SQL Abfage auf einen "Berechneten" Feld
 
Hallo! Ich bin sehr froh das mir jemand geantwortet hat. Das habe ich mir auch gedacht, das das nicht geht, weil das kein physikalischer Feld ist!

Dieser Berechnetesfeld setzt sich folgendermassen zusammen:

Beschreibung = Suche in eine zweitetabelle(FeldA, Inhalt(AktuelleTabelle.DatensatzA)) Bei erfolg gib mir aus der zweite Tabelle Feldinhalt (FeldU). + irgendwas.

kurz gesagt ich suche in zwei Tabellen.

In diesen Fall würde mir nur eine Select anfrage auf zwei Tabellen weiter helfen? Oder?

Ich hoffe das ist nicht zu kompliziert.... :oops:

WePo 9. Feb 2006 22:47

Re: SQL Abfage auf einen "Berechneten" Feld
 
Hi,
nicht besonders schön.
Delphi-Quellcode:
procedure Tdm.tabelleCalcFields(DataSet: TDataSet);
var Ergebnis : Variant;
Ergebnis:=query.Lookup('id','1','name_z1;name_z2;plz;ort');
Tabelle.FieldByName('beschreibung').AsString := Ergebnis[0]+' '+Ergebnis[1]+', '+Ergebnis[2]+' '+Ergebnis[3];
Und nun dieser post.
Zu oben: wie sollst du an Ergebnis[i] kommen?
Ja du suchst in zwei Tabellen also setze dir den sql string zusammen.
Delphi-Quellcode:
select a.feld, cast (cast(b.nr as string)+b.name+... as string) from table_x a, table_y b
where ...
Weiß nicht ob dein MySql die verschachtelten casts mag. Probier es aus.
Oder nimm einen join.
Werner


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:34 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz