Witam :)
Potrzebuje wyciągać informacje z bazy danych za dzień poprzedni (to umiem), przy czym w poniedziałek powinno wyciągnąć za piątek i sobotę (czego nie umiem).
Czy może mi ktoś podpowiedzieć jak zrobić coś 'ala funkcję warunkową' do 'poniedziałkowego pobierania danych' ?
0
0
Warunkowe... np. https://msdn.microsoft.com/en-us/library/ms182587.aspx , albo https://msdn.microsoft.com/pl-pl/library/ms181765(v=SQL.110).aspx ... pokaż może kawałek kodu, którym wyciągasz te inormacje ... :)
0
where c.ord_id like 'COPL%' and p.spr_id !='RETUR' and to_char(p.created_date,'YYYY-MM-DD') = to_char(sysdate-1,'YYYY-MM-DD')
Tak wygląda część 'warunków' u mnie w zapytaniu. Ostatni jej fragment pobiera dane za dzień wczorajszy, lecz w poniedziałem chciałbym uzyskać informacje za piątek i sobotę :)
0
zrob sobie warunek w stylu kolumna BETWEEN (CASE dzien WHEN poniedzialek THEN data_piatkowa ELSE data_wczorajsza END) AND (CASE dzien WHEN poniedzialek THEN data_sobotnia ELSE data_wczorajsza END)
moze ci sie przydac np. to http://www.techonthenet.com/oracle/functions/trunc_date.php
1
Pisane z głowy. Baza Oracle 11g
WHERE c.ord_id LIKE 'COPL%'
AND p.spr_id !='RETUR'
AND(to_char(p.created_date,'YYYY-MM-DD') = case
when to_char(sysdate, 'D') = 1 then
to_char(sysdate-2,'YYYY-MM-DD')
else
to_char(sysdate-1,'YYYY-MM-DD') end
or
to_char(p.created_date,'YYYY-MM-DD') = case
when to_char(sysdate, 'D') = 1 then
to_char(sysdate-3,'YYYY-MM-DD')
else
to_char(sysdate-1,'YYYY-MM-DD') end);