IFNULL - wstawia w pole daty wart. 2.01.1
: śr cze 19, 2013 3:15 pm
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,
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,