분기별 실적 쿼리 하기(DATEPART 기능 사용) - SqlServer
분기별로 데이터를 뽑아서 보고서를 만드는 경우가 꽤 있습니다.
년별 분기별 판매금 합계를 구해 오세요~
라고 하면 DATEPART 기능을 사용해서 쿼리하면 됩니다.
작은 예제를 통해서 해봤습니다.
--임시 테이블을 생성
DECLARE @Temp TABLE
(
SaleDate DATETIME --판매일
,SaleAmout DECIMAL --판매금
);
/*
1월 ~ 3월 : 1분기
4월 ~ 6월 : 2분기
7월 ~ 9월 : 3분기
10월 ~ 12월 : 4분기
*/
--데이터 입력
INSERT INTO @Temp VALUES('2013-01-04', 2000000); --1분기
INSERT INTO @Temp VALUES('2013-04-08', 1200000); --2분기
INSERT INTO @Temp VALUES('2013-06-17', 400000); --2분기
INSERT INTO @Temp VALUES('2013-07-08', 3000000); --3분기
INSERT INTO @Temp VALUES('2013-07-27', 1000000); --3분기
INSERT INTO @Temp VALUES('2013-08-02', 450000); --3분기
INSERT INTO @Temp VALUES('2013-08-20', 550000); --3분기
INSERT INTO @Temp VALUES('2013-09-09', 600000); --3분기
INSERT INTO @Temp VALUES('2013-09-16', 500000); --3분기
INSERT INTO @Temp VALUES('2013-10-07', 240000); --4분기
INSERT INTO @Temp VALUES('2013-11-08', 500000); --4분기
INSERT INTO @Temp VALUES('2013-12-11', 100000); --4분기
--데이터 잘 조회 되는지 확인 한번 하고~
SELECT * FROM @Temp;
--분기별로 판매금액 합계 구하기
SELECT
--날짜형식을 년도로 변환해줌, 이건 그냥 SUBSTRING 처리 해도 된다.
DATEPART(YEAR, SaleDate) AS SaleDateYYYY
--날짜형식을 분기별 형식으로 변환해줌.
,DATEPART(QUARTER, SaleDate) AS SaleDateQuarter
--년도와 분기별 판매금액 합계를 구한다.
,SUM(SaleAmout) AS SaleAmout
FROM
@Temp
GROUP BY
--년도와
DATEPART(YEAR, SaleDate)
--분기별로 합계를 구하기 위해서 그룹 지어준다.
,DATEPART(QUARTER, SaleDate)
'프로그램 경험 > Database' 카테고리의 다른 글
[SqlServer] 프로시저 결과 테이블 변수에 담기 (0) | 2015.01.06 |
---|---|
[SqlServer] 월별 누계 금액 구하기 (0) | 2014.11.19 |
[SqlServer] PIVOT 기능 사용하기(행열 변환) (0) | 2014.09.15 |
[SqlServer] 실행 프로시저 찾기 (0) | 2014.08.06 |
[SqlServer] 데이터에서 숫자만 빼고 특수문자들 제거 하기 (0) | 2014.07.31 |