Ich (Base-Anfänger) habe (OO 3.1.0 -unter Suse 11.0) eine Datenbank erstellt, mit der ich Personal in verschiedenen Einrichtungen verwalten möchte.
Die Tabelle "Personal" enthält ein Feld "Austrittsdatum". Dieses ist bei unbefristet Beschäftigten "leer". Wenn ich nun abfragen will, welche Personen am 31.12.2009 noch beschäftigt sind, werden, wenn ich über das Austrittsdatum abfrage, natürlich nur die befristet Beschäftigten mit Austrittsdatum nach dem 31.12.2009 aufgelistet. Ich habe versucht die unbefristeten Fälle mit IFNULL abzufangen, aber da liefert die Abfrage kein Datumsformat mehr, sondern nur das Datum als lfd. Zahl. Außerdem kann ich kein Kriterium auf IFNULL setzen. Wenn ich hier ein Datum eingebe, oder die entsprechende fortlaufende Zahl, erhalte ich die Fehlermeldung, dass es sich hier um den falschen Datentaype handelt.
Hat jemand eine Idee zur Lösung?
Abfrage auf Austrittsdatum mit IFNULL
Moderator: Moderatoren
-
- *****
- Beiträge: 473
- Registriert: Fr, 09.10.2009 16:44
- Wohnort: Bielefeld
- Kontaktdaten:
Re: Abfrage auf Austrittsdatum mit IFNULL
Hallo,
versuchs mal mit SELECT * FROM <TABELLE> WHERE Austrittsdatum IS NULL
Dieselbe Abfrage mit "IS NOT NULL" liefert Dir die Festangestellten. Das Feld Austrittsdatum muß dann wirklich leer sein (also NULL: Mantra - NULL is a state, not a value; NULL is a state, not a value; NULL is a state, not a value).
HTH & Grüße
Andreas
versuchs mal mit SELECT * FROM <TABELLE> WHERE Austrittsdatum IS NULL
Dieselbe Abfrage mit "IS NOT NULL" liefert Dir die Festangestellten. Das Feld Austrittsdatum muß dann wirklich leer sein (also NULL: Mantra - NULL is a state, not a value; NULL is a state, not a value; NULL is a state, not a value).
HTH & Grüße
Andreas
LO 4.3
AMD Athlon 64 3700+, 2.21 GHz, 4 GB RAM, Win XP SP3
iMac 2 GHz, 16 GB RAM/MacBookPro, 8 GB RAM, Mac OS X 10.9.5
Intel Core2 Quad CPU Q6600 @ 2,4 GHz, 4 GB RAM, Suse 13.2
MySQL 5.1: Pentium III, 666 MHz, 512 MB, Suse 12.1
AMD Athlon 64 3700+, 2.21 GHz, 4 GB RAM, Win XP SP3
iMac 2 GHz, 16 GB RAM/MacBookPro, 8 GB RAM, Mac OS X 10.9.5
Intel Core2 Quad CPU Q6600 @ 2,4 GHz, 4 GB RAM, Suse 13.2
MySQL 5.1: Pentium III, 666 MHz, 512 MB, Suse 12.1
Re: Abfrage auf Austrittsdatum mit IFNULL
Hallo Andreas,
vielen Dank für die schnelle Antwort. Deine vorgeschlagenen Lösungen funktionieren natürlich. Aber vielleicht habe ich mich zu undeutlich ausgedrückt. Ich suche eine einzige Abfrage, mit der ich alle befristet Beschäftigten mit Austrittsdatum > xx.xx.xxxx und alle unbefristet Beschäftigten aufliste. Daher habe ich versucht das leere Feld "Austritt" mit IFNULL in der Abfage mit einem Datum (31.12.2099) zu "füllen" und dann abzufragen.
Gruß
Jo
vielen Dank für die schnelle Antwort. Deine vorgeschlagenen Lösungen funktionieren natürlich. Aber vielleicht habe ich mich zu undeutlich ausgedrückt. Ich suche eine einzige Abfrage, mit der ich alle befristet Beschäftigten mit Austrittsdatum > xx.xx.xxxx und alle unbefristet Beschäftigten aufliste. Daher habe ich versucht das leere Feld "Austritt" mit IFNULL in der Abfage mit einem Datum (31.12.2099) zu "füllen" und dann abzufragen.
Gruß
Jo
Re: Abfrage auf Austrittsdatum mit IFNULL
Hallo Jo,
warum nicht so:
Oder wenn Du unbedingt ein "Pseudodatum" (z.B. 31.12.2099) bei Nullwerten vergeben möchtest, dann so:
In letzterem Fall "SQL Kommando direkt ausführen" aktivieren!
Gruß Barlee
warum nicht so:
Code: Alles auswählen
... where Datumsspalte > 'XXXX-XX-XX' OR Datumsspalte IS NULL
Code: Alles auswählen
SELECT
CAST(IFNULL("Datumsspalte",'2099-12-31') AS DATE) AS "Datum"
FROM "Deine_Tabelle"
WHERE CAST(IFNULL("Datumsspalte",'2099-12-31') AS DATE) > '2010-02-10'
Gruß Barlee
Re: Abfrage auf Austrittsdatum mit IFNULL
Hallo Barlee,
das ist genau das, was ich gesucht habe. Du hast mein Problem(chen) gelöst. Vielen Dank!
Gruß
Jo
das ist genau das, was ich gesucht habe. Du hast mein Problem(chen) gelöst. Vielen Dank!
Gruß
Jo