"We are back" « oc.at

Pro-Frage: SQL

Obermotz 07.10.2008 - 13:12 973 7
Posts

Obermotz

Fünfzylindernazi
Avatar
Registered: Nov 2002
Location: OÖ/RI
Posts: 5262
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? :confused:

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
Avatar
Registered: Jan 2002
Location: Scotland
Posts: 13497
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
Avatar
Registered: Nov 2002
Location: OÖ/RI
Posts: 5262
Schon korrigiert, der Parser motzt aber bereits beim ersten AND..

Spikx

My Little Pwny
Avatar
Registered: Jan 2002
Location: Scotland
Posts: 13497
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
Avatar
Registered: Nov 2005
Location: NÖ
Posts: 5298
Ich tätt jetzt mal gesagt die ONs klammern. Weiß aber nicht ob das das Problem ist, probieren kannst ja mal.

Obermotz

Fünfzylindernazi
Avatar
Registered: Nov 2002
Location: OÖ/RI
Posts: 5262
Mah da sieht man wieder wie blöd man wird wenn man zu viel gleichzeitig im Kopf hat :bash:

Die Argumente bei Joins werden natürlich nicht mit AND, sondern durch Beistriche getrennt. :rolleyes:

Solved, danke fürs nachdenken.

ica

hmm
Avatar
Registered: Jul 2002
Location: Graz
Posts: 9848
Zitat von Obermotz
Die Argumente bei Joins werden natürlich nicht mit AND, sondern durch Beistriche getrennt. :rolleyes:

also so natürlich ist das nicht - vielleicht bei VQL (was auch immer das ist), aber nicht bei SQL.

Obermotz

Fünfzylindernazi
Avatar
Registered: Nov 2002
Location: OÖ/RI
Posts: 5262
Doku definiert VQL genauer:
Zitat
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.
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz