|
| |

ADO.NET / Datenbanken| RecordSet, SQL, Unterabfrage (sub-select) mit mehreren Ergebnissen abfangen? | |  | | Autor: ewaldvb | | Datum: 17.05.11 18:47 |
| Hallo,
ich hoffe ich fliege mit einer SQL-Frage nicht gleich hier raus.
Ich habe nun das Problem, dass ich eine Abfrage aufgrund von Eingabefeldinhalten selbst zusammenstelle und dazu aufgrund verschiedener Eingabe-/Auswahlmöglichkeiten auf Select-Ebene weitere Selects einbauen muss, wo aber mehrere Ergebniszeilen zurückkommen können.
Die fertig gebastelte Abfrage sieht so aus (ist im Echtbetrieb natürlich viel umfangreicher, ca 25 Auswahlfelder/Möglichkeiten):
Select KundenNummerRechung As Rechnung_An,
(Select isnull( (Select Lieferadresse From Adressen where KundenNummerLieferung = '12345'), 'NotFound')) As Lieferung_An
From Kunden
Die Unterabfrage wird nur eingefügt, wenn der Benutzer auch das Suchkriterium "Lieferadresse" ausfüllt.
Das Problem für die Unterabfrage:
Bei "kein Datensatz gefunden" (KundenNummerLieferung '12345' gibt es nicht) wird ISNULL schlagend und es kommt "NotFound" zurück. Soweit OK.
Werden aber mehere Zeilen mit KundenNummerLieferung = '12345' gefunden, bricht SQL natürlich berechtigter Weise mit der Fehlermeldung "Die Unterabfrage gab mehr als eine Wert zurück. Das ist ungültig, wenn.....".
Eigentlich dürfte so etwas ja gar nicht passieren, aber passiert eben doch, dass eine Nummer zweimal vergeben wird(Leichen?).
So, nun hilft kein Group By, kein MAX()/MIN() usw. Es sollte auch hier ein Fehler als Ergebnis zurückkommen, z.B. "MoreThanOne".
Es hilft nichts die Abfrage einfach zu ignorieren, in solchen Fällen sollte der Fehler ja auch Erkennbar gemacht werden, um entsprechend reagieren zu können.
Viel Theorie....
aber vielleicht weiss hier doch jemand Abhilfe.
lg
Ewald |  |
 RecordSet, SQL, Unterabfrage (sub-select) mit mehreren Ergeb... | 2.328 | ewaldvb | 17.05.11 18:47 |   Re: RecordSet, SQL, Unterabfrage (sub-select) mit mehreren E... | 1.337 | Micke | 18.05.11 11:21 |   Re: RecordSet, SQL, Unterabfrage (sub-select) mit mehreren E... | 1.234 | effeff | 18.05.11 13:36 |    Re: RecordSet, SQL, Unterabfrage (sub-select) mit mehreren E... | 1.150 | ewaldvb | 19.05.11 16:34 |     Re: RecordSet, SQL, Unterabfrage (sub-select) mit mehreren E... | 1.310 | Klaus1704 | 19.05.11 16:40 |      Re: RecordSet, SQL, Unterabfrage (sub-select) mit mehreren E... | 1.110 | ewaldvb | 19.05.11 17:14 |       Re: RecordSet, SQL, Unterabfrage (sub-select) mit mehreren E... | 1.093 | Micke | 20.05.11 11:11 |   Re: RecordSet, SQL, Unterabfrage (sub-select) mit mehreren E... | 1.170 | DaveS | 18.05.11 14:02 |
 | Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
  |
|
sevWizard für VB5/6 
Professionelle Assistenten im Handumdrehen
Erstellen Sie eigene Assistenten (Wizards) im Look & Feel von Windows 2000/XP - mit allem Komfort und zwar in Windeseile :-) Weitere InfosTipp des Monats Access-Tools Vol.1 
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
| |
|
Copyright ©2000-2025 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|