Befehl access und sql server

Hallo,
Ich möchte zwei Spalten verschiedener Tabellen vergleichen. Die eine ist Teil der anderen Spalte.
Kann mir jemand sagen wie sich der Befehl übertragen lässt? Die Abfrage funktioniert in Access einwandfrei, wenn ich den gleichen Befehl aber auf dem SQL Server eingebe, findet er anscheinend die Zuordnung nicht:

SELECT DISTINCT RoLi.[ADMS Export Status], RoLi.KKS, RoLi.ZNG_S1A, SystemRIZuordnung.[RI Nr], SystemRIZuordnung.System
FROM RoLi, SystemRIZuordnung
WHERE (((RoLi.[ADMS Export Status])„gelöscht“ Or (RoLi.[ADMS Export Status]) Is Null) AND ((RoLi.ZNG_S1A) ALike [SystemRIZuordnung].[RI Nr] & „%“));

Problem liegt wahrscheinlich in der letzten Zeile, vom Rest daher nicht ablenken lassen. Kann mir bitte jemand helfen?

Danke.
Armin

Hallo Armin,

die Abfrage müsste wie folgt lauten:

SELECT DISTINCT RoLi.[ADMS Export Status], RoLi.KKS, RoLi.ZNG\_S1A,
 SystemRIZuordnung.[RI Nr], SystemRIZuordnung.System
FROM RoLi, SystemRIZuordnung
WHERE ( RoLi.[ADMS Export Status] 'gelöscht' 
 Or RoLi.[ADMS Export Status] Is Null ) 
 AND charindex(RoLi.ZNG\_S1A, [SystemRIZuordnung].[RI Nr]) \> 0;

Die Funktion charindex prüft, ob der Inhalt von RoLi.ZNG_S1A in [SystemRIZuordnung].[RI Nr] vorhanden ist und liefert den Startwert zurück. Wird nichts gefunden, wird 0 zurückgeliefert. Daher auch der Vergleich auf > 0. Der Startwert kann allerdings auch > 1 sein. Dein Ansatz geht von einem Startwert = 1 aus.

Mehr zur Funktion charindex: http://msdn.microsoft.com/en-us/library/ms186323.aspx

Peter

Hallo Peter,
danke für deine schnelle Antwort damals.
Ich hab meine Frage glaub nicht richtig formuliert, deine Antwort war zwar richtig, jedoch nicht mein gewünschtes Ergebnis, also nochmal:

Ich möchte in einer Abfrage zwei Spalten verschiedener Tabellen vergleichen (RINr der Tabelle SystemRIZuordnung ist teilweise in ZNG_S1A in Tabelle RoLi enthalten).
Kann mir jemand sagen wie sich der Befehl übertragen lässt? Die Abfrage funktioniert in Access einwandfrei, wenn ich den gleichen Befehl aber auf dem SQL Server eingebe, findet er anscheinend die Zuordnung nicht:

SELECT DISTINCT RoLi.[ADMS Export Status], RoLi.KKS, RoLi.ZNG_S1A, SystemRIZuordnung.[RI Nr], SystemRIZuordnung.System
FROM RoLi, SystemRIZuordnung
WHERE (((RoLi.[ADMS Export Status])„gelöscht“ Or (RoLi.[ADMS Export Status]) Is Null) AND ((RoLi.ZNG_S1A) ALike [SystemRIZuordnung].[RI Nr] & „%“));

Ausgabe Abfrageergebnis soll zu allen Spalten KKS aus RoLi das System der Tabelle SystemRIZuordnung sein, bei der die Zuordnung funktioniert hat.
Problem liegt wahrscheinlich in der letzten Zeile, vom Rest daher nicht ablenken lassen. Kann mir bitte jemand helfen?

Danke.
Armin

SELECT DISTINCT RoLi.[ADMS Export Status], RoLi.KKS,
RoLi.ZNG_S1A, SystemRIZuordnung.[RI Nr],
SystemRIZuordnung.System
FROM RoLi, SystemRIZuordnung
WHERE (((RoLi.[ADMS Export Status])„gelöscht“ Or (RoLi.[ADMS
Export Status]) Is Null) AND ((RoLi.ZNG_S1A) ALike
[SystemRIZuordnung].[RI Nr] & „%“));

Hallo Armin,
davon ausgehend dass der SQL im Access scheinbar funktioniert wie Du sagst habe ich 2 Anmerkungen:

  • Ersetze " durch ’ bei Texten
  • Befehl ALike kenne ich nicht, probiere mal LIKE …

Gruß
Klaus

das war der mein Fehler, zudem musste ich noch das & durch ein + ersetzen.

Vielen Dank euch allen für die Hilfe.

Armin