구간을 월별로 나누어서 계산...

taz2315 2014.04.22 11:56 Views : 2836

아래 글을 올렸는데요... 다시 질문을 올립니다.

제가 전체적으로 이해를 못하고... 이것저것을 참고해서 하려다 보니 결과값이 안나오네요...

 

계약 기간

 

 

WITH SOTable AS

(
  SELECT 'A' AS '제목', CONVERT(DATETIME,'2011-03-29') AS '시작시간', CONVERT(DATETIME,'2012-03-29') AS '종료시간'


)
 
SELECT

DAT.*, AAA.*

FROM

(

 SELECT

  *

 , DATEDIFF(MONTH,시작시간,종료시간) + 1 AS TotalCount

 FROM SOTable

) DAT

Inner join

(

 SELECT TOP 300

  ROW_NUMBER() OVER(ORDER BY number) AS NO

 , convert(varchar(10),DATEADD(Month, ROW_NUMBER() OVER(ORDER BY number) - 1, CONVERT(DATETIME,'2010-03-01')) , 120) AS StartDate

 , convert(varchar(10),DATEADD(Month, ROW_NUMBER() OVER(ORDER BY number) - 1, CONVERT(DATETIME,'2010-03-31')), 120)  AS EndDate

 FROM master.dbo.spt_values

) AAA

 ON      convert(varchar(7), DAT.시작시간, 120) >=   convert(varchar(7),AAA.EndDate   , 120) and  convert(varchar(7), DAT.종료시간, 120) >=   convert(varchar(7),AAA.EndDate   , 120)

order by 제목

이렇게 쿼리를 하면 결과 값이

 

A 2011-03-29 00:00:00.000 2012-03-29 00:00:00.000 13 1 2010-03-01 2010-03-31
A 2011-03-29 00:00:00.000 2012-03-29 00:00:00.000 13 2 2010-04-01 2010-04-30
A 2011-03-29 00:00:00.000 2012-03-29 00:00:00.000 13 3 2010-05-01 2010-05-31
A 2011-03-29 00:00:00.000 2012-03-29 00:00:00.000 13 4 2010-06-01 2010-06-30
A 2011-03-29 00:00:00.000 2012-03-29 00:00:00.000 13 5 2010-07-01 2010-07-31
A 2011-03-29 00:00:00.000 2012-03-29 00:00:00.000 13 6 2010-08-01 2010-08-31
A 2011-03-29 00:00:00.000 2012-03-29 00:00:00.000 13 7 2010-09-01 2010-09-30
A 2011-03-29 00:00:00.000 2012-03-29 00:00:00.000 13 8 2010-10-01 2010-10-31
A 2011-03-29 00:00:00.000 2012-03-29 00:00:00.000 13 9 2010-11-01 2010-11-30
A 2011-03-29 00:00:00.000 2012-03-29 00:00:00.000 13 10 2010-12-01 2010-12-31
A 2011-03-29 00:00:00.000 2012-03-29 00:00:00.000 13 11 2011-01-01 2011-01-31
A 2011-03-29 00:00:00.000 2012-03-29 00:00:00.000 13 12 2011-02-01 2011-02-28
A 2011-03-29 00:00:00.000 2012-03-29 00:00:00.000 13 13 2011-03-01 2011-03-31

 

이렇게 나오는데요.

결과값 갯수는 맞는데..

전 이 결과값이

 

A 2011-03-29 2011-03-31
A 2011-04-01 2011-04-30
A 2011-05-01 2011-05-31
A 2011-06-01 2011-06-30
A 2011-07-01 2011-07-31
A 2011-08-01 2011-08-31
A 2011-09-01 2011-09-30
A 2011-10-01 2011-10-31
A 2011-05-01 2011-05-31
A 2011-12-01 2011-12-31
A 2012-01-01 2012-01-31
A 2012-02-01 2011-02-28
A 2012-03-01 2012-03-31

 

이렇게 나오게 하고 싶은데.. 어떻게 해야 할까요?

 

No. Subject Author Date Views
Notice 2023년 1월 - SQLER의 업데이트 강좌 리스트 코난(김대우) 2023.01.02 466
7809 쿼리 올려 봅니다. 봐주세요. [2] ssunsori 2014.04.23 2876
7808 Management Studio에서 스크립트로 사용자 변경 가능한가요? [1] 뽀지티브 2014.04.23 2816
7807 Select시에 필드를 간단히 지정하는 방법 [1] 디비디비 2014.04.23 2397
7806 time 타입 쿼리 문의 입니다. [1] 우영호수 2014.04.22 3468
7805 Declare에서 어디가 이상한 건지... [7] 디비디비 2014.04.22 4240
7804 집계(Sum,()) 이 많은 테이블인데요 인덱스관련질문입니다. [1] 김락중_278785 2014.04.22 3751
» 구간을 월별로 나누어서 계산... [3] taz2315 2014.04.22 2836
7802 이전달 데이터 카운터를 세고 싶습니다. [1] 김준형_283549 2014.04.22 2148
7801 한달 집계 내는것좀 알려주세요..ㅠ [1] 뽀챙 2014.04.21 3141
7800 SQL 트랜잭션 로그 stop at, stop before에 대해 물어 볼려고 합니다. [2] 아는게없어 2014.04.21 2786
7799 구간의 값을 월 단위로 쪼개기 [4] taz2315 2014.04.21 3875
7798 현재 값과, 결제 로그를 가지고 이전에 가지고 있던 갯수 유추 쿼리문은 어떻게 짜야할까요? [2] Mr황 2014.04.21 2474
7797 sp_dboption 질문 [1] 잉유 2014.04.20 3001
7796 쿼리 메모리 누수관련 질문드립니다 에큐에르 2014.04.20 9832
7795 풀백업 받아도 트랜젝션 백업을 받아야하는 이유? [12] 보충수업 2014.04.17 8743
7794 이런 쿼리도 가능 한가요? [5] ssunsori 2014.04.17 2497
7793 미러링시 AD환경과의 FQDN 문제. 도움부탁 드려요!! 그라스허퍼 2014.04.17 6078
7792 DB 마이그레이션 업체 사용해보신 분 계신가요? [3] 아네사 2014.04.16 3044
7791 MS SQL 2008 R2를 쓰고 있는데, 한글 문제가... [2] 디비디비 2014.04.16 3977
7790 테이블 데이터 공간 증가 관련 질문 [2] 냥코이 2014.04.16 2610





XE Login