MeisterB Geschrieben 7. August 2003 Geschrieben 7. August 2003 Was ist an dieser Abfrage falsch? SELECT Lieferdatum,Seriennummer FROM Auslieferversionen where ([Auslieferversionen].[KD-Nr]=[Kunden].[Kd-Nr]) and ([Kunden].[Kunde]="RTL") Fehlermeldung: Syntaxfehler (fehlender Operator) in Abfrageausdruck '([Auslieferversionen].[KD-Nr]=[Kunden].[Kd-Nr]) and ([Kunden].[Kunde]=RTL) Zitieren
tauron Geschrieben 7. August 2003 Geschrieben 7. August 2003 Original geschrieben von MeisterB Was ist an dieser Abfrage falsch? SELECT Lieferdatum,Seriennummer FROM Auslieferversionen where ([Auslieferversionen].[KD-Nr]=[Kunden].[Kd-Nr]) and ([Kunden].[Kunde]="RTL") Fehlermeldung: Syntaxfehler (fehlender Operator) in Abfrageausdruck '([Auslieferversionen].[KD-Nr]=[Kunden].[Kd-Nr]) and ([Kunden].[Kunde]=RTL) Du beziehst dich auf die Tabelle Kunden in deiner WHERE Bedingung, ohne das sie zu dem SELECT gehört, ich denke darin liegt der Fehler. Probier mal ob es so läuft: SELECT Auslieferversionen.Lieferdatum, Auslieferversionen.Seriennummer FROM Auslieferversionen INNER JOIN Kunden ON ([Auslieferversionen].[KD-Nr]=[Kunden].[Kd-Nr]) where ([Kunden].[Kunde]="RTL") Zitieren
MeisterB Geschrieben 7. August 2003 Autor Geschrieben 7. August 2003 Die Fehlermeldung hat sich durch deinen Vorschlag zu dieser Verändert: Syntaxfehler (fehlender Operator) in Abfrageausdruck '([Kunden].[Kunde]="RTL")'. Zitieren
tauron Geschrieben 7. August 2003 Geschrieben 7. August 2003 Hmm was für eine DB verwendest Du denn ? Hast Du in der Tabelle 'Kunden' tatsächlich ein Feld namens 'Kunde' (vielleicht Schreibfehler) ? Benutzt Du die Abfrage im Quellcode ? Zitieren
MeisterB Geschrieben 8. August 2003 Autor Geschrieben 8. August 2003 Ich benutzte eine Accessdatenbank und greife über VC++ .net darauf zu. Der Fehler war der, das ich RTL in ' ' setzten muss und nicht in " ". Bin jetzt weiter gegangen und hab versucht noch ne join Anweisung einzubinden aber da erhalte ich den Fehler: Syntaxfehler in JOIN-Operation. SELECT Auslieferversionen.Lieferdatum, Auslieferversionen.Seriennummer,Versionen.Versionsbezeichung FROM Auslieferversionen INNER JOIN (Kunden ON ([Auslieferversionen].[KD-Nr]=[Kunden].[Kd-Nr]) where ([Kunden].[Kunde]='XXX'))Inner Join(Versionen On([Auslieferversionen].[Lieferversion]=[Versionen].[Versionsnummer]) Meine Datenbank ist so aufgebaut: Kunden besitzt referentielle Integrietät auf Auslieferversionen (durch Kd-Nr von Kunden und KD-Nr von Auslieferversionen), Auslieferversionen besitzt wiederum referentielle Integrietät auf Versionen(durch Lieferversion von Auslieferversionen und Versionsnummer von Versionen). Ich hoffe du kannst damit was anfangen, da ich gerade erst mit SQL-Abfragen begonnen habe und nicht besonders viel Erfahrung damit habe. Zitieren
MeisterB Geschrieben 8. August 2003 Autor Geschrieben 8. August 2003 Ich erklär wohl besser was ich genau mit der Abfrage bezwecken will: Wenn der Benutzer einen Kunden auswählt sollen aus allen Tabellen bestimmte Werte abgefragt werden die sich nur auf diesen einen Kunden beziehen. Hier mein ganzer Datenbankaufbau: Meine Datenbank ist so aufgebaut: Kunden besitzt referentielle Integrietät auf Auslieferversionen (durch Kd-Nr von Kunden und KD-Nr von Auslieferversionen), Auslieferversionen besitzt wiederum referentielle Integrietät auf Versionen(durch Lieferversion von Auslieferversionen und Versionsnummer von Versionen). Weiterhin besitzt Auslieferversionen referentielle Integrietät auf Sachbearbeiter (durch Sachbearbeiter von Auslieferversionen und Personalnummer von Sachbearbeiter). Also müssten die Abfrage so aufgebaut sein, das die ganzen Tabellen durch die Punkte die referentielle Integrietät aufweisen verbunden sind. Da ich wie schon gesagt nicht viel Ahnung von SQL bzw. dem Inner Join habe möchte ich euch bitten mir eine mögliche Lösung zu geben Zitieren
MeisterB Geschrieben 8. August 2003 Autor Geschrieben 8. August 2003 Hab ich ein Glück in der Accessdatenbank hab ich ne Abfrage gefunden die genau diesen referentiellen Integrietät-Zusammenhang darstellt Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.