Funkcja SQL zmieniająca odstęp czasu na pojedyncze rekordy

0

Witam! Potrzebuję pomocy w napisaniu funkcji, której zadaniem będzie:
np mamy taki rekord

Imie | Nazwisko | Start | Koniec
Marcin | Kowalski | 1-1-2014 | 2-2-2014

i teraz między startem, a końcem jest 32 dni, więc chcę uzyskać 32 rekordy z każdą kolejną datą od startu do końca.
Jest jakiś łatwy sposób żeby to napisać?

0

A co w tych rekordach ma być? Sposób jest łatwy:

 
dla każdej daty od start do koniec rób 
      insert into ... values .... 

:)

0

Ma być wszystko to samo, tylko zamiast start i koniec te daty...

0

jaka baza?

0
with x as (select 'Marcin' As imie, 'Kowalski' As nazwisko, Date('20140101') as start, Date('20140202') as koniec)
select * from x, (SELECT generate_series(start, koniec, '1 day') dzien FROM x) dni
0

ms sql 2008...

0

select *, cast(date_add(start_date, interval liczba day) as date) from 
(
select 'Marcin' imie, 'Kowalski' nazwisko, '2014-01-01' start_date, '2014-02-02' end_date
union 
select 'Kazimierz' imie, 'Wielki' nazwisko, '2014-02-01' start_date, '2014-03-02' end_date
) dane
join
(
select j+10*d+100*s liczba from 
(
select 0 j union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9
) jednosci,
(
select 0 d union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9
) dziesiatki,
(
select 0 s union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9
) setki
) dni 
on dni.liczba between 0 and datediff(end_date, start_date)
order by nazwisko, liczba

bez komentarza, bo czasu nie mam.
Funkcje sa z MySQL, bno mi sie nie chcialo przypominac na MS SQL

0

kompletna bzdura, zrobilem to inaczej, poszukalem troche w necie, po prostu tworzy sie funkcje zwracajaca tabele.

0

Porównaj predkosc..

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