vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
NEU! sevCoolbar 3.0 - Professionelle Toolbars im modernen Design!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

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
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
RecordSet, SQL, Unterabfrage (sub-select) mit mehreren Ergeb...2.313ewaldvb17.05.11 18:47
Re: RecordSet, SQL, Unterabfrage (sub-select) mit mehreren E...1.312Micke18.05.11 11:21
Re: RecordSet, SQL, Unterabfrage (sub-select) mit mehreren E...1.228effeff18.05.11 13:36
Re: RecordSet, SQL, Unterabfrage (sub-select) mit mehreren E...1.142ewaldvb19.05.11 16:34
Re: RecordSet, SQL, Unterabfrage (sub-select) mit mehreren E...1.299Klaus170419.05.11 16:40
Re: RecordSet, SQL, Unterabfrage (sub-select) mit mehreren E...1.103ewaldvb19.05.11 17:14
Re: RecordSet, SQL, Unterabfrage (sub-select) mit mehreren E...1.086Micke20.05.11 11:11
Re: RecordSet, SQL, Unterabfrage (sub-select) mit mehreren E...1.163ModeratorDaveS18.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

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

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