Fehler in geschachtelter Select Anweisung

Hallo miteinander,

ich hab gerade ein Problem mit einer geschachtelten SQL Anweisung beim ausführen sagt mir VB6, dass mind. ein Parameter Fehlt, nur leider seh ich es nicht kann mir jemand einen Anstoß geben?

„Select Mitarbeiter.MaZNam from Mitarbeiter where Mitarbeiter.Werk_ID=(select Werk.Werk_ID from Werk where Werk.WerkNa =‚Hamburg‘)“

Vielen Dank
Rayk

Hallo Rayk

ich hab gerade ein Problem mit einer geschachtelten SQL Anweisung

Das nennt man „Subselect“.

„Select Mitarbeiter.MaZNam from Mitarbeiter where
Mitarbeiter.Werk_ID IN (select Werk.Werk_ID from Werk where
Werk.WerkNa =‚Hamburg‘)“

Ich würde statt dem Subselect lieber einen „Join“ machen…

Gruss
Peter

Hallo Rayk

ich hab gerade ein Problem mit einer geschachtelten SQL
Anweisung beim ausführen sagt mir VB6, dass mind. ein
Parameter Fehlt, nur leider seh ich es nicht kann mir jemand
einen Anstoß geben?

*schubs*

„Select Mitarbeiter.MaZNam from Mitarbeiter where
Mitarbeiter.Werk_ID=(select Werk.Werk_ID from Werk where
Werk.WerkNa =‚Hamburg‘)“

Leider nicht. Sieht eigentlich ganz gut aus. Hier bräuchten wir die Tabellendefinitionen von Werk und Mitarbeiter. Halt, cut! Blödsinn, was ich schrub!

Es müsste m. E. heißen: … Mitarbeiter.Werk_ID IN (select… statt „=“

Ansonsten ein kleiner Tip: SQL-String über Direktfenster ausgeben lassen, nach Access in eine neue Abfrage kopieren und hier ausprobieren. Access sagt einem dann zumindest, welcher Parameter erwartet wird. Dazu muss natürlich die DB auch in Access vorhanden sein; ggf. halt alle Tabellen aus der richtigen DB einbinden.

Gruß, Manfred

Moien,

erstmal der Tip solche selects immer formatiert anzulegen - glaubst gar nicht wieviele Fehler man dann schneller sieht! Ansonsten ist natürlich der Tip mit Access gut. Viele verspotten es, doch um sql-Fehler zu suchen bzw. sql zu lernen ist es unschlagbar (und in vielen anderen Bereichen auch ;o))

Zusätzlich würde ich hier auch keine subselect machen sondern einfahc in dieser Form schreiben…

Select
Mitarbeiter.MaZNam
from
Mitarbeiter, werk
where
Mitarbeiter.Werk_ID = Werk.Werk_ID
and
Werk.WerkNa =‚Hamburg‘

Ist doch irgendwie einfacher, gelle ;o)) Union ging natürlich auch - dürfte aber hier überflüssig sein…

Gruß

Bernd

Alles klar!
Danke schonmal werde es morgen in aller frühe gleich mal probieren!
mfg rayk

Hallo, Bernd!

Union ging natürlich
auch - dürfte aber hier überflüssig sein…

? Was willst Du denn hier Unionen? Du meintest sicherlich Join, oder?

Gruß, Manfred

hast ja Recht ;o))) (OT)