1. Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm
    Information ausblenden

Where Befehl mit NULL Ergebnissen

Dieses Thema im Forum "MySQL und MariaDB" wurde erstellt von bernhardk, 13 März 2019.

  1. bernhardk

    bernhardk Neuer Benutzer

    Hallo Community,

    ich habe folgende, vereinfachte, Abfrage gebastelt:

    Select
    person_name, person_eintrittsdatum, person_Austrittsdatum
    from ....

    Mein Problem ist nun dass ich beispielsweise folgende 3 Datensätze habe:
    1. xxx - 1.1.2019 - NULL
    2.xxx - 5.1.2018 - 20.1.2019
    3.xxx - 20.2.2019 - 20.2.2019

    Das heißt eine Person, die gar nicht erschienen ist. Ich krieg es jetzt leider nicht hin, dass ich mir die Abfrage so bastle, dass nur die Personen angezeigt werden, die noch aktiv sind (wie 1.) und welche einen Austritt haben der NICHT am selben Tag entstand (wie 2.).

    Wenn ich im Where Befehl eingebe: where per_austritt != per_eintritt
    and per_austritt is NULL kommt mir gar kein Ergebnis.

    Kann mir hier jemand weiterhelfen in der Anpassung des WhereBefehls ...:/

    Danke
     
  2. akretschmer

    akretschmer Datenbank-Guru

    Code:
    andreas@[local]:5432/test# select * from foo;
     i |    ein     |    aus     
    ---+------------+------------
     1 | 2019-01-01 | 2019-02-01
     2 | 2019-01-01 |
    (2 rows)
    
    andreas@[local]:5432/test# select * from foo where ein != aus and aus is not null;
     i |    ein     |    aus     
    ---+------------+------------
     1 | 2019-01-01 | 2019-02-01
    (1 row)
    
    andreas@[local]:5432/test# select * from foo where ein != aus and aus is null;
     i | ein | aus
    ---+-----+-----
    (0 rows)
    
    andreas@[local]:5432/test#
    
    Es gäbe bessere Lösungen, z.B. gleich ein CONSTRAINT setzen, daß ein < aus sein muß, oder DATERANGE als Datentyp. Aber MySQL kann das ja alles nicht.
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden