Temat: zmiana wyswietlania danych - zapytanie

Witam,
W jaki sposob moge zmienic wyswietlanie danych z takiej formy

poczatek urlopu / koniec urlopu
2014-10-21/ 2014-10-23

na formę poniższą:
dzien urlopu
2014-10-21
2014-10-22
2014-10-23

Czy muszę zastosować jakieś pętle ?

Pozdrawiam
Lukasz

Temat: zmiana wyswietlania danych - zapytanie

Proszę, wersja ze zmiennymi:
DECLARE @dataOd DATE = '2014-10-21';
DECLARE @dataDo DATE = '2014-10-23';
DECLARE @ileDni int = 0;

SELECT @ileDni = DATEDIFF(DAY, @dataOd, @dataDo) + 1;

SELECT DATEADD(DAY, i-1, @dataOd)
FROM
(
SELECT TOP (@ileDni) i= ROW_NUMBER() OVER (ORDER BY objs.object_id)
FROM sys.all_objects AS objs
) x


Powyższy kod opakowany w funkcję zwracającą tabelę:
CREATE FUNCTION DniUrlopu (@dataOd DATE,  @dataDo DATE)
RETURNS @DniUrlopu TABLE
(
Dzien DATE
)
AS
BEGIN
DECLARE @ileDni int = (SELECT DATEDIFF(DAY, @dataOd, @dataDo) + 1);

INSERT @DniUrlopu
SELECT DATEADD(DAY, i-1, @dataOd)
FROM
(
SELECT TOP (@ileDni) i= ROW_NUMBER() OVER (ORDER BY objs.object_id)
FROM sys.all_objects AS objs
) x
RETURN
END


Wynik:

SELECT * FROM DniUrlopu('2014-10-21', '2014-10-23')

Dzien
2014-10-21
2014-10-22
2014-10-23


PS: nie ma za co ;]Ten post został edytowany przez Autora dnia 21.10.14 o godzinie 23:28

Następna dyskusja:

Strumieniowe Bazy Danych




Wyślij zaproszenie do