IFNULL - wstawia w pole daty wart. 2.01.1

Użytkowanie programu bazodanowego
toivio
Posty: 14
Rejestracja: czw kwie 11, 2013 2:14 pm

IFNULL - wstawia w pole daty wart. 2.01.1

Post autor: toivio »

Witam,
po stworzeniu zapytania:
SELECT
,"m"."imie" AS "Mąż:"
,"z"."imie" AS "Żona:"
,IFNULL("m"."data_slubu","z"."data_slubu") AS "data ślubu"
,IFNULL("m"."miejsce_slubu","z"."miejsce_slubu") AS "miejsce ślubu"
,IFNULL("m"."dzieci","z"."dzieci") AS "Dzeci:"

FROM { OJ "rodzina" "r"
LEFT JOIN "osoba" "m" ON "r"."id"="m"."id_rodziny" AND "m"."typ_w_rodzinie"='1'
LEFT JOIN "osoba" "z" ON "r"."id"="z"."id_rodziny" AND "z"."typ_w_rodzinie"='2'
}
;

w polu "data ślubu", gdy daty tej niema ani mąż ani żona wstawiana jest jakaś dziwna wartość: 2.01.1, pole to w tabeli ma wartość DATE

w polach "miejsce ślubu" i "dzieci" gdy nie podanych to prawidłowo pozostawia puste,
dlaczego wstawiana jest taka wartość i jak można to ominąć?

edit:
zastępując IFNULL funkcją:
COALESCE("m"."data_slubu","z"."data_slubu",xxx)
w miejsce xxx można wstawić tylko datę w formacie np. {D '2111-11-01' }, pozostawiajć puste,lub podając jakiś wyraz wywala błędem.
dzieje się tak tylko na polu typu DATE, na VARCHAR pozostawia puste,
OpenOffice 3.1 na Windows 7
toivio
Posty: 14
Rejestracja: czw kwie 11, 2013 2:14 pm

Re: IFNULL - wstawia w pole daty wart. 2.01.1

Post autor: toivio »

ponawiam swoje pytanie ponieważ problem jest w dalszym wykorzystaniu IFNULL w Raporcie.

Jak wspominałem, jeżeli nie ma żadnej daty automatycznie wstawia się 2.0.1.1, i wtedy niemożna wygenerować Raportu. Działa to na polu DATE, na polu tekstowym IFNULL działa dobrze, gdy jest brak danych pozostawia puste pole i raport generuje się bez problemu.
OpenOffice 3.1 na Windows 7
Jan_J
Posty: 4626
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: IFNULL - wstawia w pole daty wart. 2.01.1

Post autor: Jan_J »

Widocznie efekt założenia że NULL będzie reprezentowany przez 0, a 0 jak data to ....
Nie całkiem poprawne, no ale cóż...
A gdyby w polu użyć składni case ... when ... z badanem czy data jest null i w razie czego zareagować?
JJ
LO (25.2|24.8) ∙ Python (3.12|3.10) ∙ Unicode 16 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
ODPOWIEDZ