To že původně nefungovaly uvedené funkce bylo asi dáno tím, že měly původní dokumenty nastaveno jiné časové pásmo, respektive například americký formát. V LO existují 2 embending databáze a z toho také mohlo vzejít chybné vyhodnocení. Lo má navíc implementovánu databázi Firebird která to mohla udělat. Pokud jste podruhé otevřel klasickou databázi (tuším HSQL) problém asi vymizel.
Osobně bych to řešil v Calcu. Tedy je možné, že Váš zdroj je prakticky uceleným programem pro zdravotnické zařízení. Proto je možné, že ho lze používat s minimálními úpravami. Pokud ne určitě bych doporučil Calc místo Base.
]]>PS
Dokonce bych tak zadával i den a měsíc. Například RČ(číslo pojištěnce) bych udělal jako alias (Číslo pojištěnce ap.), který slučuje například kolonky den x 100000000 + měsíc x 1000000 + rok(jako LEFT(Rok;2) x 10000 + číslo za lomítkem ve formátu 4 čísel.
Samozřejmě může nastat problém s mužem a ženou, takže u měsíce se dá přičítat ještě tuším 50 aby se odlišilo pohlaví. Dalším problémem by mohli být stolotí lidé. Tady bych si tipnul, že specializované datumové funkce by vyhodily chybu. Nevím jestli vyšechny, ale začínají pro dvojmístný rok od roku 1930. Obecně funkce mohou pracovat bez nějakého problému s daty od roku 1900. Existují ale možnosti pro datové funkce od roku někde 1530 (nevím přesně). Tyto ale špatně počítají přestupné roky aj. Takovým problémům se snadno vyhnete právě zadáváním čísel.
Vzorec pro aliasy nemusí být matematickým součtem, ale řetězcem String. den & měsíc & rok & "/" & číslo za lomítkem.
SQL pak může hledat opravdu čísla, které se ale v pohledu, ani sestavě neobjeví. Prakticky se vyhnete všem možným záludnostem datumových formátů.
]]>SELECT AVG(("Operace stenózy"."Datum" - "Pacient"."Datum narození") YEAR) FROM "Operace stenózy", "Pacient" WHERE "Operace stenózy"."RČ" = "Pacient"."RČ";
Hlásí mi to chybu syntaxe a programu se nelíbí ten údaj YEAR.
Aktuálně užívám LibreOffice 4.2.1
Nevíte někdo, jaká má být aktuální syntaxe?
Respektive nebere to ani alternativu s DATEDIFF...
Díky, Králík