Příklad: Potřebujeme zobrazit data za předchozích 24 měsíců od měsíce ‘2009/01‘.
Jde o jednoduchý filtr, kde čas chceme omezit na pomocí:
- Konverze string na datum
- Odpočítání 24 měsíců.
V databázi Oracle by bylo použití triviální to_date('2009/01', 'YYYY/MM') nebo to_timestamp('2009/01', 'YYYY/MM').
OBI EE přímo poskytuje jenom dvě možnost jak vytvořit z textu datum nebo timestamp a to pomocí funkcí:
- DATE 'YYYY-MM-DD HH:MM:SS' a TIMESTAMP ' YYYY-MM-DD HH:MM:SS'
- CAST ('nls_date_format' as date) a CAST (' nls_timestamp_format' as timestamp)
V případě použití funkce date a timestamp není možné jako parametr předat další funkci, které by třeba provedla nahrazení '-' za '/' a proto se jednoduchá konverze na datum komplikuje.
Workaround:
Použití nativní databázové funkce volané pomocí evaluate (více viz. dokument Oracle BI Server and Embedded DB Functions):
cast(evaluate('add_months(to_date(''@{mesic}{2010/01}/01'',''YYYY/MM/DD''),-24)' as date) as date)
Karel Hübl (GEM System International)
Žádné komentáře:
Okomentovat