Funkcje warunkowe w SQL

0

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

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);

1 użytkowników online, w tym zalogowanych: 0, gości: 1