Pro-Frage: SQL
Obermotz 07.10.2008 - 13:12 973 7
Obermotz
Fünfzylindernazi
|
Hi! Ich hab grad einen Knopf im Hirn - ich dachte immer bei einem SQL-Join kann man mehrere Schlüsselfelder angeben, über die Verknüpft werden soll. Jetzt schmeißt mir der Parser aber einen sehr unkonkreten Fehler, bei irgendeiner AND-Verknüpfung solle was nicht stimmen. Schema: LEFT OUTER JOIN kz.tabelle ON a.feld1=kz.feld1 a.feld2=kz.feld2 Gibts das bei LO-Joins gar nicht? Statement ist folgendes: (Nicht wundern über die seltsame Syntax, ist VQL) Edit: Entfernt Vielleicht kann mir wer helfen, danke..
Bearbeitet von Obermotz am 07.10.2008, 13:47
|
Spikx
My Little Pwny
|
Du hast ein AND vergessen bei
LEFT OUTER JOIN relABTERMKORD tk ON ep.PROJEKTNR = tk.PROJEKTNR AND ep.PROJEKTVZ = tk.PROJEKTVZ AND ep.MANDANT = tk.MANDANT AND ep.PROJEKTVER = tk.PROJEKTVER ep.POSNR = tk.POSNR
|
Obermotz
Fünfzylindernazi
|
Schon korrigiert, der Parser motzt aber bereits beim ersten AND..
|
Spikx
My Little Pwny
|
Ah ok, dachte vielleicht das wär's gewesen. Ansonsten will ich mein Hirn nicht bemühen darüber nachzudenken, wie JOINs jetzt tatsächlich funktionieren :]
|
tinker
SQUEAK
|
Ich tätt jetzt mal gesagt die ONs klammern. Weiß aber nicht ob das das Problem ist, probieren kannst ja mal.
|
Obermotz
Fünfzylindernazi
|
Mah da sieht man wieder wie blöd man wird wenn man zu viel gleichzeitig im Kopf hat  Die Argumente bei Joins werden natürlich nicht mit AND, sondern durch Beistriche getrennt.  Solved, danke fürs nachdenken.
|
ica
hmm
|
Die Argumente bei Joins werden natürlich nicht mit AND, sondern durch Beistriche getrennt.  also so natürlich ist das nicht - vielleicht bei VQL (was auch immer das ist), aber nicht bei SQL.
|
Obermotz
Fünfzylindernazi
|
Doku definiert VQL genauer: Der Zugriff auf die Daten erfolgt über eine mengenorientierte Schnittstelle. Mengenorientiert bedeutet, dass die gewünschte Satzmenge in einer speziellen Sprache beschrieben wird, nicht jedoch die Art des Zugriffs und der Datenorganisation (satzorientiert). Die meisten Datenbanken unterstützen dafür die Abfragesprache SQL (Structured Query Language = Strukturierte Abfragesprache), wobei es zwischen den einzelnen Anbietern Unterschiede gibt. Um für ... eine herstellerunabhängige Schnittstelle zu bieten, die außerdem eng mit dem Repository und den internen Datenstrukturen zusammenarbeitet, wird an der Schnittstelle zu ... mit der Sprache VQL (Versatile Query Language) gearbeitet. Die Sprache VQL lehnt sich an der Standardsprache SQL an, enthält jedoch zusätzliche, ... spezifische Erweiterungen. In dieser Sprache werden Anweisungen zum Laden und Ändern von Daten formuliert, die dann über bestimmte ...-Methoden ausgeführt werden. Die VQL-Anweisungen werden in der Domäne ScriptDataDef als VQLStatement-Objekte erfasst, wobei jede Anweisung durch einen eindeutigen Namen identifiziert wird. Zur Laufzeit wird in der Regel keine VQL-Anweisung in textueller Form übergeben, sondern nur der Name der Anweisung. Mit den Beistrichen funktionierts einwandfrei.
|