안녕하세요 쿼리문 결과를 가로 출력을하고 싶은데 실력이 모자라서 접근이 어렵네요
현재 보고싶은 내용은 당기/전기 실적을 보고 싶은데 구현이 쉽지가 않네요
특정 기한을 주고 예를 들어 2017-01 ~2017-12까지 선택하면
기준월 당기금액 전기금액
2017-01 1,000,000 500,000
2017-02 450,000 2,500,000
.
2017-12 1,000,000 2,000,000
전기금액은 2016-01 ~2016-12까지 적용해서 계산하면됩니다.
현재 방법을 몰라서 당기/전기 각각 select해서 조인하니 리스트가 아래로 길게 나와서 위에 예처럼 표현되지 않습니다.
select left(wkrdate,7)wrkmonth,sum(price)price from wrk_tab where left(wrkdate,7) >= '2017-01' and left(wrkdate,7) <= '2017-12'
group by left(wkrdate,7)
union
select left(wkrdate,7)wrkmonth,sum(price)price from wrk_tab where left(wrkdate,7) >= '2016-01' and left(wrkdate,7) <= '2016-12'
group by left(wkrdate,7)
order by 1
자료 찾아보니 case문을 사용하면 될것도 같은데 아직 실력이 너무 부족해서 방법적으로 접근이 어렵네요
고수 분들의 도움 부탁드립니다.
갑사합니다.
Comment 1
-
ssunsori
2018.02.12 11:31
음 ....간단 설명 하자면 .. 날짜를 전부 잘라서 월만 남겨두고 ("01" ~ "12") 그룹을 묶어 버립니다.그리고 중간에 년도만 입력 하면 ("2017") 17년도 금액이 나오겠네요 1 부터 12월까지selectsubstring(REPLACE( REPLACE( REPLACE(CONVERT(VARCHAR(50),날짜컬럼,120),'-',''),':',''),' ',''),5, 2) as mon,sum(case when (col = '단기')then price else 0 end) as [단기금액],sum(case when (col = '전기')then price else 0 end) as [전기금액]from tb_table 명where substring(REPLACE( REPLACE( REPLACE(CONVERT(VARCHAR(50),날짜컬럼,120),'-',''),':',''),' ',''),1, 4) = '2017' -- 조회연도group by substring(REPLACE( REPLACE( REPLACE(CONVERT(VARCHAR(50),날짜컬럼,120),'-',''),':',''),' ',''),5, 2)order by 1월별 통계 이렇게 잡으면 한눈에 보기 쉬울꺼에요..단기 전기1월2월...12월이런식으로 ... 더 좋은 방법은 아랫분이..