Announcement

Collapse
No announcement yet.

Abfrage mit Nullwerten

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Abfrage mit Nullwerten

    In meiner Anwendung sollen Kundendaten nach verschiedenen Kriterien abgfragt werden können. Z.B. sollen alle Kunden aus dem Ort XY angezeigt werden, unabhängig davon ob bei diesen Kunden alle Felder mit Daten ausgefüllt sind. Die nachfolgende Anweisung bringt mir nur die Kunden als
    Ergebnis, bei denen in allen Feldern Daten hinterlegt sind.Ich möchte jedoch auch die "Null"-Felder berücksichtigen.

    Die SQL-Anweisung lautet (in Auszügen):
    SELECT Nachname, Ort, Straße,Vorname,
    FROM UDozMaNaWi2001
    WHERE UPPER (Nachname) LIKE UPPER (:'%Nachname%')
    AND UPPER (Ort ) LIKE UPPER (:'%Ort%')
    AND UPPER (Straße) LIKE UPPER (:'%Straße%' )
    AND UPPER (Vorname ) LIKE UPPER (:'%Vorname%' )

    Wer kann mir helfen ???
    Klaus

  • #2
    Hallo Klaus,

    SELECT Nachname, Ort, Straße,Vorname, FROM UDozMaNaWi2001 WHERE ((UPPER (Nachname) LIKE UPPER (:'%Nachname%')) or (Nachname is null)) AND ((UPPER (Ort ) LIKE UPPER (:'%Ort%')) or (Ort is null))
    AND ((UPPER (Straße) LIKE UPPER (:'%Straße%' )) or (straße is null)) AND ((UPPER (Vorname ) LIKE UPPER (:'%Vorname%' )) or (Vorname is null))

    Das SQL-Statemente ist auf dem Interbase-Server getestet.

    Tschüß

    Torste

    Comment


    • #3
      Hallo Torsten,

      besten Dank für den Tip. Soweit klappt es jetzt besser - nur: wenn ich z.B. unter Adressenzusatz %Ang% eingebe, erhalte ich als Ergebnis alle Daten mit "ange"
      zusätzlich jedoch auch alle Nullwerte unter Adressenzusatz. Nach Null-Werten habe
      ich in dem Fall (Adressenzusatz) nicht gesucht sondern eben %Ange%.

      Vielleicht habe ich bei meiner Problemstellung zu wenige Infos gegeben. Hier jetzt meine neue, komplette SQL mit dem im Beispiel genannten Ergebnis:

      SELECT Anrede, Nachname, Fachbereich, Titel, Uni, PLZ, Ort, Straße,
      Adressenzusatz, Vorname, Fax, Telefon, EMail

      FROM UDozMaNaWi2001
      WHERE PLZ LIKE:'%PLZ%'
      AND ((UPPER (Nachname) LIKE UPPER (:'%Nachname%')) or (Nachname is null))
      AND ((UPPER (Ort ) LIKE UPPER (:'%Ort%')) or (Ort is null))
      AND ((UPPER (Straße) LIKE UPPER (:'%Straße%' )) or (straße is null))
      AND ((UPPER (Vorname ) LIKE UPPER(:'%Vorname%' )) or (Vorname is null))
      AND ((UPPER (Anrede) LIKE UPPER (:'%Anrede%')) or (Anrede is null))
      AND ((UPPER (Fachbereich ) LIKE UPPER (:'%Fachbereich%')) or (Fachbereich is null))
      AND ((UPPER (Titel) LIKE UPPER (:'%Titel%' )) or (Titel is null))
      AND ((UPPER (Adressenzusatz ) LIKE UPPER (:'%Adressenzusatz%')) or (Adressenzusatz is null))
      AND ((UPPER (Uni) LIKE UPPER (:'%Uni%' )) or ((Uni is null)))

      Habe ich vielleicht einen Fehler gemacht oder muss die SQL anders lauten? Auf jeden Fall schon mal besten Dank.

      Gruß
      Klau

      Comment


      • #4
        Hallo Klaus,

        nach Deiner SQL-Anweisung werden alle Datensätze angezeigt, bei denen 'Ange' gefunden wird und darüber hinaus auch alle mit Nullwerten (sofern die sonstigen Suchkriterien passen).

        Wenn ich das richtig verstehe, möchtest Du alle Datensätze mit 'Ange' (+ sonstige Suchkriterien) angezeigt bekommen, aber keine Nullwerte! Falls es keinen Datensatz mit 'Ange' gibt sollen die mit Nullwerten angezeigt werden?

        Mit welcher Datenbank arbeitest Du?

        Du kannst mir auch eine e-mail schicken (Adresse erhälst Du durch Klick auf meine Namen)

        Tschüß

        Torste

        Comment

        Working...
        X