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

taz2315 2014.04.22 11:56 Views : 2889

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

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

 

계약 기간

 

 

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 SQL강좌: 챗GPT와 함께 배우는 SQL Server 무료 강좌 목차와 소개 (2023년 9월 업데이트) 코난(김대우) 2023.08.18 36259
Notice Python 무료 강좌 - 기초, 중급, 머신러닝(2023년 6월 업데이트) 코난(김대우) 2021.01.01 18855
» 구간을 월별로 나누어서 계산... [3] taz2315 2014.04.22 2889
7802 이전달 데이터 카운터를 세고 싶습니다. [1] 김준형_283549 2014.04.22 2185
7801 한달 집계 내는것좀 알려주세요..ㅠ [1] 뽀챙 2014.04.21 3194
7800 SQL 트랜잭션 로그 stop at, stop before에 대해 물어 볼려고 합니다. [2] 아는게없어 2014.04.21 2832
7799 구간의 값을 월 단위로 쪼개기 [4] taz2315 2014.04.21 3963
7798 현재 값과, 결제 로그를 가지고 이전에 가지고 있던 갯수 유추 쿼리문은 어떻게 짜야할까요? [2] Mr황 2014.04.21 2522
7797 sp_dboption 질문 [1] 잉유 2014.04.20 3043
7796 쿼리 메모리 누수관련 질문드립니다 에큐에르 2014.04.20 9894
7795 풀백업 받아도 트랜젝션 백업을 받아야하는 이유? [12] 보충수업 2014.04.17 8843
7794 이런 쿼리도 가능 한가요? [5] ssunsori 2014.04.17 2528
7793 미러링시 AD환경과의 FQDN 문제. 도움부탁 드려요!! 그라스허퍼 2014.04.17 6113
7792 DB 마이그레이션 업체 사용해보신 분 계신가요? [3] 아네사 2014.04.16 3094
7791 MS SQL 2008 R2를 쓰고 있는데, 한글 문제가... [2] 디비디비 2014.04.16 4026
7790 테이블 데이터 공간 증가 관련 질문 [2] 냥코이 2014.04.16 2646
7789 sqlcmd 사용해서 프로시저만 빼고 복원 할 수 있을까요? [2] 조굴 2014.04.15 3428
7788 RollUp에 대한 질문입니다. [1] 희망나라 2014.04.15 2914
7787 한국 - 중국간 MSDTC 에러건 문의 [2] y2j2 2014.04.15 4863
7786 join sum 에 대해서 질문 좀 할께요. [6] ssunsori 2014.04.14 8915
7785 저장된 숫자 데이터 이상 발생 및 PK 위반 [2] 세이 2014.04.14 3186
7784 MSSQL 복제 및 부하분산이 궁금합니다. [6] SE왕초보 2014.04.14 8797





XE Login