with tmp as (
select idx = 0
union all
select idx = idx + 1 from tmp
where idx < 30 )
select
dw = CAST(dw as varchar) + '주차'
, startWeek = DATEADD(dd, -1 * DATEPART(DW, MIN(dt)) + 1, MIN(dt) )
, endWeek = DATEADD(dd, 6, DATEADD(dd, -1 * DATEPART(DW, MIN(dt)) + 1, MIN(dt) ))
from (
select
idx
, dt = DATEADD(DD, idx, '20150301')
, dw = datepart(WW, DATEADD(DD, idx, '20150301'))
from tmp
) q
group by dw
option (maxrecursion 0) ;
위 문장은 이곳에서 찾은 주별 날짜를 수하는 문장입니다.
제가 하고자 하는것은 두날짜를 Argument 로 기간내에 주의 수를 구하는 DB 함수를 만들고 싶습니다.
MS-SQL 은 익숙치 않을뿐더러, With tmp as {... 로 되어있는 경우를 처음ㅈ 접해서 감이 안잡히네요
위문장을 Cursor 로 선언하여 INTO 값을 Count 하여 Return 하면 될듯한데 도무지 감이 안잡히네요.
두 기간사이의 주의 수를 구하는 다른 방법이나 함수를 알려주시면 고맙겠습니다.
감사합니다.
|