[Erledigt] Join-Abfrage in Access


#1

Hallo,
Ich weiß nicht genau, ob das hier das richtige Forum ist, aber das andere Datenbankforum (mit ADO) schien mir auch nicht richtig…

Also, ich mache in einer Access-Datenbank einen Join. Vielleicht erstmal kurz, was ich erreichen möchte.

Ich möchte aus einer Tabelle in einer Spalte die Codes haben, die Präfix von einem anderen Code in der gleichen Spalte sind.

Beispiel:
1.1.2
1.1
1.1.2.3
usw.

Als Ergebnis möchte ich nun die ersten beiden kriegen, weil die jeweils Präfix eines anderen sind.
Ich hab mir jetzt überlegt, dass ich einen Inner Join von der Tabelle auf sich selbst mache und in dem Join abfrage, ob die Länge kürzer als die des anderen Codes ist und ob der andere diesen dann enthält.

Das sieht dann so aus:

SELECT Tab.Code
FROM Tab INNER JOIN Tab AS Tab2
ON (((Len([Tab.Code]))<(Len([Tab2.Code])))
AND ((Links([Tab2.Code];Len(Tab.Code))))=Tab.Code))

Die Klammern kamen nach und, weil ich mir sonst nicht zu helfen wusste.
Er sagt jetzt immer: Sysntaxfehler in Join-Operation

Kann man so eine Bedingung nicht in einem Join abfragen?

Vielen Dank schonmal,
Gilbert


#2

Ich habe deine Frage mal ins richtige Unterforum verschoben.


#3

Vielen Dank!
Sorry, hatte ich nicht gesehen.


#4

Ich hab es jetzt mal ohne die AND-Bedingung versucht. Das funktioniert.
Kann man vielleicht die Länge nicht als Parameter an die Left-Funktion übergeben?


#5

Ich habs rausgefunden.
Wenn man den Wizard in Access benutzt (also die Entwurfsansicht), werden die Parameter in den Funktionen durch Semikolons getrennt und in der SQL-Ansicht durch Kommas.

Gruß, Gilbert