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