SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS OFF GO
-- ============================================= -- ALTER table function (TF) -- =============================================
ALTER FUNCTION fn_prd_calendar ( @AS_FRDT CHAR(8), @AS_TODT CHAR(8) ) RETURNS @prd_calendar TABLE ( DAY1 CHAR(8) , DAY2 CHAR(8) , DAY3 CHAR(8) , DAY4 CHAR(8) , DAY5 CHAR(8) , DAY6 CHAR(8) , DAY7 CHAR(8)
) AS BEGIN
DECLARE @DAY CHAR(8) , @AN_COUNT NUMERIC
SET @AN_COUNT = 0
WHILE (@DAY = @AS_TODT)
SELECT @DAY = CONVERT(CHAR(8) , DATEADD(DAY , @AN_COUNT , @AS_FRDT) , 112)
INSERT @prd_calendar VALUES (CASE WHEN @AN_COUNT = 0 THEN @DAY ELSE NULL END , CASE WHEN @AN_COUNT = 1 THEN @DAY ELSE NULL END , CASE WHEN @AN_COUNT = 2 THEN @DAY ELSE NULL END , CASE WHEN @AN_COUNT = 3 THEN @DAY ELSE NULL END , CASE WHEN @AN_COUNT = 4 THEN @DAY ELSE NULL END , CASE WHEN @AN_COUNT = 5 THEN @DAY ELSE NULL END , CASE WHEN @AN_COUNT = 6 THEN @DAY ELSE NULL END ) SET @AN_COUNT = @AN_COUNT + 1
RETURN END
GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO
시작일과 종료일을 넣으면 시작일부터 종료일까지 일자가 생성되게 하려고 합니다.
값도 증가하지 않고 모든 컬럼에 null이 들어갑니다.
일단 테스트를 해보려고 DAY@가 종료일자(@AS_TODT)와 같을때까지 반복을 하려는데도.
안되더라구요.
MS-SQL은 첨해보는거라서...(오라클도 잘 하는건 아니지만요..ㅠㅠ) 도와주세요... |