안녕하세요!! 제가 회사에서 펑션을짜는대요 ㅜ
이전5개월의 출하량을 구하는것인데요
지금이 2013년 5월 이잔습니까?
그러면 2012년 12월 2013년 1월 2월 3월 4월 이렇게 값이 나와야하는데 ㅜㅡ
지금이 6월이라면 1,2,3,4,5 월 이렇게용 ㅜ
일단 펑션을 보시면
set @fr_dt = convert(varchar(10),DATEADD(MONTH, -1, @mon + '-01'),120) + '-01'
set @to_dt = @to_dt = DATEADD(dd, 1, @fr_dt)
set @fr_dt = DATEADD(dd , 1*(@dayn-1), @fr_dt)
set @to_dt = DATEADD(dd , 1*(@dayn-1), @to_dt)
일단 달마다 30일 31일 29일이있기 때문에 1로 줬습니다.
그리구 의문은
set @fr_dt = convert(varchar(10),DATEADD(MONTH, -1, @mon + '-01'),120) + '-01'
전월 구하는 식인데 여기서 5달을 어떻게 나오게 하는냐는것인데요ㅜ @mon 변수에 값을 5번주면 된다던데
이게 무슨말인지 모르겠습니다 ㅜㅜ
아시는분들 도움부탁드립니다 ㅜ
Comment 2
-
진윤호
2013.05.14 17:44
-
처리짱
2013.05.15 10:31
질문의 의도와 맞는지 모르겠네요;
create FUNCTION [dbo].GetFunction
()
RETURNS NVARCHAR(10)
AS
BEGIN
DECLARE @sRet NVARCHAR(10)
DECLARE @dtDate DATETIME
DECLARE @nMonth INT
SET @sRet = ''
SET @dtDate = DATEADD(year, -1, GETDATE())
--SELECT @dtDate
SELECT @nMonth = MONTH(@dtDate)DECLARE @i INT
SET @i = 1WHILE @i <= @nMonth
BEGIN
SET @sRet = @sRet + CONVERT(NVARCHAR(20), @i) + ','
SET @i = @i + 1
ENDRETURN @sRet
END
변수 추가해서 5달치를 변수로 들고 있고 SELECT 을 따로 해서 UNION 하더나 아님 WHERE 문에 OR로 추가 해서 구함 구해질 듯여;;
5번 주라는 이야기는 넘어온 값이 1씩 추가하면 5개월 전 4개월 전 3개월 전 2개월 전 1개월 전 이 나오니까요