반응형
쿼리를 작성 하다보면 월별 마지막 일자를 구해야 될때가 있는데 쿼리 내에서 계산을 해도 되겠지만
테이블로 생성시켜 놓고 년월 으로 JOIN만 해서 가져오는 식으로 하면 간편하고 쿼리 가독성도
높아서 이와 같은 방식을 추천 합니다.
다음과 같이 row 수가 많은 아무 테이블(아래 예제는 거래처)을 이용해서 일괄 생성 할 수 있습니다.
CREATE TABLE tblLastDate (YM nchar(6) PRIMARY KEY, LastDate nchar(8) ) INSERT INTO tblLastDate (YM, LastDate) SELECT convert(nchar(6), dateadd(m, b.ord - 1, '20000101'), 112) as YM, convert(nchar(8), dateadd(d, -1, dateadd(m, b.ord, '20000101')), 112) as LastDate FROM ( SELECT top 1000 (ROW_NUMBER() OVER (PARTITION BY 0 ORDER BY custseq)) ord FROM tblCust ) b
다음과 같이 년월별로 마지막 일자를 가진 테이블이 생성 됩니다.
SELECT * FROM tblLastDate
반응형
'데이터베이스' 카테고리의 다른 글
[MySQL] Windows 7 64bit에서 MySQL 32bit ODBC 드라이버가 안 보일 때 (2) | 2014.05.21 |
---|---|
[SQL서버] COALESCE 함수 (0) | 2014.01.24 |
[SQL서버] PK(Primary Key) 변경 하기 (0) | 2013.06.22 |
[SQL서버] 문자열 에서 한글 분리 (0) | 2013.03.27 |
SQL서버 CLR 활성화 시키기 (0) | 2012.07.16 |