mysql 쿼리 질문드리겠습니다. 0 2 789

by 밍밍밍밍 [MySQL] [2017.11.02 11:01:14]


 

A 테이블

CNO TITLE DATE  
1 test1 2017-10-11 오후 4:00:55  
2 test2 2016-10-11 오후 4:00:55  

B테이블

MNO CNO TYPE
1 1 A
2 1 B
3 2 A

결과

연도 건수 타입수
2016 1 2
2017 1 1

 

위 표처럼 등록된 연도별로 건수, 타입수를 뽑고싶습니다.

아래쿼리로 건수까지는 뽑았는데 B테이블 조인으로 하려고하니

자꾸 건수값까지 바뀌는데 어떻게 수정을 해야할까요..?

SELECT
      DATE ,
		    FORMAT(SUM(CASE WHEN DATE = '2016' THEN CNT ELSE 0 END),0) 2016title,
		    FORMAT(SUM(CASE WHEN DATE = '2017' THEN CNT ELSE 0 END),0) 2017title
		FROM (
		    SELECT
		       DATE_FORMAT(DATE,'%Y') DATE , COUNT(C_NO) CNT
		    FROM 
		        table A
           GROUP BY
		        DATE_FORMAT(DATE,'%Y')
		    ORDER BY
		        DATE ASC
		) A
		GROUP BY DATE
		ORDER BY DATE

 

by 마농 [2017.11.02 13:12:27]
SELECT DATE_FORMAT(a.dt, '%Y') yyyy
     , COUNT(DISTINCT a.cno) cnt1
     , COUNT(*) cnt2
  FROM table_a a
 INNER JOIN table_b b
    ON a.cno = b.cno
 GROUP BY DATE_FORMAT(a.dt, '%Y')
 ORDER BY yyyy
;

 


by 밍밍밍밍 [2017.11.02 13:51:06]

답변감사드립니다

 

해결했습니다~

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입