![]() |
nested select?
Hallo Zusammen,
habe ein kleines Problem, beim Aufruf einer Select Anweisung bekomme ich den Fehler "Nested Select" ich habe schon im Forum und im Inet gesucht, aber bis jetzt nichts brauchbares gefunden. Meine Frage an Euch: Warum kommt der Fehler und wie kann ich ihn korrigieren? Ich benutze Delphi 5 SP1 BDE komponenten Quelcode:
Delphi-Quellcode:
Beim öffnen kommt der Fehler.
Query.Close;
Query.SQL.Clear; Query.Add("select nut_beg from tabelle where id = 1234 and nut_beg = (select max(nut_beg) from tabelle where id = 1234)"); Query.Open; Für die Hilfe bin ich im Voraus sehr Dankbar! [edit=Sharky]Wegen der "Schönheit" die Delphi-Tags eingefügt. Mfg, Sharky[/edit] |
Re: nested select?
Hi,
ich kenne mich zwar nicht so mit Datenbanken aus (Wieso ist der Post eigentlich in der Multimedia Spalte?), aber ich schätze mal, dein SQL mach dieses eingenistete ("nested") Select nicht. (Das zweite in der Klammer) mfG mirage228 |
Re: nested select?
was soll das statement eigentlich machen?
|
Re: nested select?
Das statemant soll aus mehreren Werten den grössten Wert zurückliefern.
ID ist dabei ein Fremdschlüssel... |
Re: nested select?
Gar keinen ;)
Da kannst du genauso 1=1 schreiben. Als ID kennzeichnet man generell Primär schlüssel (eindeutige Felder zur Referenzierung), wenn deine ID eindeutig ist, dürfte das:
SQL-Code:
.. das gleiche Ergebnis liefern wie:
SELECT nut_beg
FROM tabelle WHERE id = 1234 And nut_beg = (SELECT Max(nut_beg) FROM tabelle WHERE id = 1234)
SQL-Code:
Nachtrag:
SELECT nut_beg
FROM tabelle WHERE id = 1234 Ich habe deinen Post zu spät bemerkt. ;) Du solltest Foreign keys NIEMALS nur als ID benennen! Du weißt in einer Woche nicht mehr auf den ersten Blick, was gemeint ist. Zum Problem: Da du MAX verwendest kann deine Sub query nur einen Datensatz liefern. Es kann also kein Fehler kommen, weil mehrere gefunden wurden. Du solltest einmal in deiner DB testen, ob MAX eine 0 liefert wenn nichts gefunden wird. Deine Sub query muss nämlich 1 (genau 1, nicht 2 oder keinen) Datensatz liefern. p.s.: Ich lasse mich jetzt nicht über das Statement an sich aus. (das geht auch einfacher ;) ) |
Re: nested select?
ID ist der Fremdschlüssel... Sorry habe mich vertan.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:55 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