+49 (0)7531 906010| service@combit.net

Problem mit NOT LIKE Formelabfrage

Hallo zusammen,

muss ein Bemerkungsfeld (Textfeld-Typ „Zeichen lang“) nach bestimmten Einträgen überprüfen.
Der Filter … LIKE N’%erledigt%’ bringt auch das gewünschte Ergebnis. Jetzt muss ich die Abfrage aber negieren. Die Datensätze ‚mit‘ dem Eintrag sollten ausgeklammert werden. Die Abfrage … NOT LIKE N’%erledigt%’ bringt jedoch nicht das ‚richtige‘ Ergebnis. Weder als Filter noch als freie SQL Abfrage. Eine Verknüpfung mit OR zweier negierter Abfragen gar nicht.
Filter „eins“ AND (Filter … NOT LIKE „zwei“ OR Filter … NOT LIKE „drei“)

Geht das bei den Textfeldern nicht?

Danke und viele Grüße

Robert

Hi Robert,

du hast NULL Werte nicht berücksichtigt, will heißen: Felder die GAR KEINEN Inhalt haben (NULL sind), sind bei SQL immer eine separate „Kategorie“, die du in den Bedingungen immer separat mit berücksichtigen musst.

Datensatz1 mit Land = ‚D‘
Datensatz2 mit Land =
Datensatz3 mit Land = ‚CH‘

eine Abfrage auf Land = ‚D‘ liefert Datensatz1 (logisch), eine Abfrage auf NOT Land = ‚D‘ liefert aber nur Datensatz3.

Der cRM versucht diesen - evtl. nicht ganz zu erwartenden Umstand im Filterassistent automatisch ein wenig „zu kaschieren“ (im positiven Sinne), indem er nämlich je nach Operator auch noch eine zusätzliche Bedingung wie „… OR LAND IS NULL“ hinzufügt.

Deine Bedingung müsste also lauten:

„Bemerkungsfeld“ NOT LIKE N’%erledigt%’ OR „Bemerkungsfeld“ IS NULL

Heißt im übertragenen Sinne: „Alle Datensätze, deren Bemerkungsfeld entweder nicht ‚erledigt‘ enthält oder aber ganz komplett leer ist.“

(Gleiches gilt analog für andere Abfragen.)

Gruß

Alex

Hi Alex,

danke für Deine Antwort. Aber die Nullwerte hatte ich in der Abfrage schon berücksichtigt, nur hier nicht erwähnt, da das Problem woanders zu liegen scheint.

Meine Abfrage beinhaltet drei Kriterien über ein und dasselbe Feld. Die Einträge sind in Zeilen vorhanden. Je ein Eintrag und dann Zeilenumbruch. Vielleicht ist es das Problem, dass eben alle drei Kriterien im Feld vorhanden sein können.

Datensatz 1 im Feld Land mit Inhalt „leer“ ist kein Problem (wird ja mit erfasst)
Datensatz 2 im Feld Land mit Inhalt „DE“ auch kein Problem
Datensatz 3 im Feld Land mit Inhalt „DE“ und „AT“ gibt bei der Abfrage schon Probleme, weil auch
Datensatz 4 im Feld Land mit Inhalt „DE“ und „AT“ und „CH“ kommen könnte.

Meine Abfrage soll mir also die Datensätze mit den Einträgen nur „DE“ bringen, aber dann nicht, wenn auch „AT“ und/oder „CH“ drin steht.
Formuliert hatte ich im Beispiel dazu (hier ohne upper usw.) „Land“ LIKE ‚%DE%‘ AND („Land“ NOT LIKE ‚%AT%‘ OR „Land“ NOT LIKE ‚%CH%‘)

Das OR ist hier das Problem. Dabei kommen Datensätze zum Vorschein, die auch AT oder CH enthalten

Die Formel „Land“ LIKE ‚%DE%‘ AND „Land“ NOT LIKE ‚%AT%‘ funktioniert einwandfrei. In dem Moment wo aber die dritte Abfrage dazu kommt, gehts nicht mehr.

Da die Einträge ja in einem Feld, aber immer geordnet (also DE kommt immer erst und dann AT etc.) sind, hab ich schon versucht sie auch in der Reihenfolge von oben und umgekehrt abzufragen. Ergebnis immer das Gleiche.

Der Vergleich mit Land hinkt hier ein wenig. Im Grunde geht es darum eine Angebotshistorie abzufragen.
Die Einträge werden per Script ins Feld geschrieben immer in der gleichen Reihenfolge. 1. Eintrag mit Mail Angebot. 2 Eintrag mit Mail Bestätigung oder Erledigt und evtl. dritter Eintrag mit Erledigt nach Bestätigung.
Ich möchte also alle Datensätze bekommen, die ein Angebot aber noch keine Bestätigung erhalten haben und die auch noch nicht erledigt sind.

Danke Dir und viele Grüße

Robert

Hi Robert,

es muss AND sein, nicht OR.

„Alle Datensätze, bei denen in LAND ‚DE‘ enthalten ist, UND NICHT ‚CH‘, UND auch NICHT ‚AT‘.“

Gruß

Alex

Hallo Alex,

ja hast recht. Hab mich da verfranst in AND (1 OR 2) mit den Klammern.

Danke Dir und viele Grüße

Robert

© combit GmbH