Dni pomiędzy datami

0

Witam,

Mam tabelę z danymi
screenshot-20181121120915.png

Jak napisać zapytanie , które dla wierszy z etykietą "nieobecność" wyświetli wszystkie daty z zakresu od-do w przypadku kiedy data_od <> data_do?

0

W MSSQL jest coś takiego

SELECT DATEDIFF(day, @data_od, @data_do);
0

Ale funkcja DATEDIFF wyświetla tylko liczbę dni pomiędzy datami a mi chodzi o wyświetlenie konkretnych dat zawartych pomiędzy dwoma datami a nie liczby dni.

0

Masz tablice z kalendarzem ? Wtedy to "piece of cake". Jak nie to masz więcej rzeźbienia, patrz topic:

https://stackoverflow.com/questions/23290454/get-all-dates-between-two-dates-in-sql-server

0

Chodzi o tabelę z kalendarzem?
Mam tabelę sys_kalendarz_dzien, która ma dane jak poniżej

screenshot-20181121132621.png

0

No to jak masz tablice z kalendarzem to zwykły join:

select
   k.data, t.*
from 
    tabela t
    inner join kalendarz k on k.data between t.data_od and t.data_do
where
   t.data_od <> t.data_do
   and etykieta = 'nieobecnosc'
0

Dzięki Panczo.
Na razie mam to o co mi chodziło ale jeszcze będę miał pytania w tym temacie bo muszę jeszcze tabelę z wpisami obecność i nieobecność połączyć z sys_kalendzarz_dzien aby mieć wszystkie dni tzn. robocze i wolne w jednym. To jednak później jakbym nie dawał rady.

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