O soluţie puţin mai complicată:
ALTER FUNCTION PrajestePestele (@data DATETIME)
RETURNS @tabel TABLE (Data DATETIME)
AS
BEGIN
DECLARE @zi INT
SET @zi = CAST(@data AS INT) % 7
IF @zi = 0 --L
BEGIN
INSERT INTO @tabel VALUES( DATEADD(dd,-3,@data) )
INSERT INTO @tabel VALUES( DATEADD(dd,-4,@data) )
END
ELSE
IF @zi = 1 --Ma
BEGIN
INSERT INTO @tabel VALUES( DATEADD(dd,-1,@data) )
INSERT INTO @tabel VALUES( DATEADD(dd,-4,@data) )
END
ELSE
IF @zi IN (2,3,4)
BEGIN
INSERT INTO @tabel VALUES( DATEADD(dd,-1,@data) )
INSERT INTO @tabel VALUES( DATEADD(dd,-2,@data) )
END
RETURN
END
GO
SELECT * FROM dbo.PrajestePestele('2008-09-12')
SELECT * FROM dbo.PrajestePestele('2008-09-13')
SELECT * FROM dbo.PrajestePestele('2008-09-14')
SELECT * FROM dbo.PrajestePestele('2008-09-15')
SELECT * FROM dbo.PrajestePestele('2008-09-16')
GO
SELECT CASE
WHEN EXISTS(SELECT * FROM dbo.PrajestePestele('2008-09-15')) THEN 'Se poate praji'
ELSE 'Nu se poate praji'
END