[Oracle] Suma wierszy w zależności od dnia nawet jeśli nie ma wpisów dla jakiegoś dnia


(Marcin Obala) #1

Cześć

 

Chciałbym osiągnąć efekt w zapytaniu taki, że liczę ile jest w bazie wierszy w bazie dla ostatnich 7 dni tygodnia, mam kolumnę DateTime i chodzi o to żeby wyświetlić liczbę 0 a nie brak wiersza.

 

2014-11-01  123

2014-11-02  456

2014-11-03  0

2014-11-04  104

 

Aktualnie po prostu nie ma tego wiersza z zerem jeśli stosuję klasyczne grupowanie. Mógłbym zrobić join z inną tabelą która zawiera daty ale musiałaby być ona dynamicznie generowana bo chodzi o ostatnie 7 dni. Najgorsze jest to, że dostęp do bazy jest read only i albo robię coś nie tak albo nawet nie mam uprawnień do tworzenia tymczasowych tabel.


(mr-owl) #2

Witam,

 

Brakującą tabelę zrobić mniej więcej tak:

 

SELECT tmp.d FROM


(Marcin Obala) #3

Dzięki za odpowiedź. W oracle musi to wyglądać tak:

  SELECT tmp.d 

  FROM

      (

        SELECT sysdate AS d from dual

        UNION ALL

        SELECT sysdate-1 from dual

        UNION ALL

        SELECT sysdate-2 from dual

        UNION ALL

        SELECT sysdate-3 from dual

        UNION ALL

        SELECT sysdate-4 from dual

        UNION ALL

        SELECT sysdate-5 from dual

        UNION ALL

        SELECT sysdate-6 from dual

      ) tmp


(mr-owl) #4

Sorry za nieścisłość ale ja pisałem to pod PostgreSQL-a ale generalnie ideę jest jasna.

 

Pozdrawiam,

 

mr-owl