안녕하세요.
제가 궁금한 사항은 일단 작성하려는 쿼리가 통계 쪽 관련해서 작성하려고 하구요
리스트를 이런식으로
부서별 글등록, 댓글등록, 조회 현황
1. 순위 | 2. 부서명 | 3.게시글등록갯수 | 4.댓글등록갯수 | 5.조회수 | 6. (2,3,4컬럼) 총합
1 | 인사팀 | 3 | 4 | 21 | 28
2 | 운영팀 | 1 | 2 | 17 | 20
3 | 기획팀 | 5 | 4 | 21 | 30
이렇게 뽑고 싶습니다.
테이블 정보는요
부서명테이블, 사원정보테이블, 게시판명테이블, 게시글테이블, 댓글테이블, 게시글조회테이블
이렇게 구성되어 있구요
게시글등록갯수 , 댓글등록갯수 , 조회수 등은 개별적으로는 출력되게 작성하였는데 한로우에 리스트로 뽑으려고 하니깐
문제가 되는거 같아여
서브쿼리를 이용해봤어요 그런데 제가 생각했던대로 제대로 구현되지 않아서...
여러차례 다양한 방법을 썻음에도 불구하고 구현할수 있는 쿼리를 작성하지 못해 답답한 마음에 글올립니다. ㅠㅠ
부디, 고수님들 많은 도움을 주셧으면 합니다.
Comment 5
-
건우아빠
2013.01.18 17:43
-
쿼리의신되고파
2013.01.18 19:30
건우아빠님 안녕하세요
좋은 말씀 감사합니다. 저도 여러차례 해결을 모색하다가 사원번호컬럼에 연관성을 알고 나서
작업을 깨속해서 진행했음에도 불구하고 제가 아직 부족한 부분이 많아서 인지
제대로 작동을 못시키고 있어요 죄송하지만 구체적으로 식을 알수 있을까요 정말 죄송합니다. ㅠㅠ
-
건우아빠
2013.01.18 20:07
with res
as (
select 사원번호 , count(*) [게시] , 0 [댓글] , 0 [조회]
from 게시글테이블
group by 사원번호
union all
select 사원번호 ,0 [게시] , count(*) [댓글] , 0 [조회]
from 댓글테이블
group by 사원번호
union all
select 사원번호 ,0 [게시] ,0 [댓글] , count(*) [조회]
from 게시글조회테이블
group by 사원번호 )
select c.부서명 , sum(a.[게시]) ,sum(a.[댓글]) , sum(a.[조회]) , sum(a.[게시]) +sum(a.[댓글])+ sum(a.[조회])
from res a join 사원정보테이블 b on a.사원번호 = b.사원번호
join 부서명테이블 c on b.부서코드 = c.부서코드
group by c.부서명
간단하게 이런식으로도 구현 가능 할듯 합니다 .
-
쿼리의신되고파
2013.01.18 21:06
건우아빠님 정말 감사합니다
다시한번 감사드립니다.
이렇게 간단하게 해결될줄은 몰랐어요 정말 정말 감사합니다.
존경합니다..ㅠㅠ
-
건우아빠
2013.01.18 21:21
쿼리는 몇가지 패턴이 있습니다. 그것만 익히시면 쉽습니다.
중요한것은 업무로직이 중요합니다. 업무로직 모르면 쿼리 잘 짤 수 없습니다. 쿼리는 프로그램과 동일합니다.
다를것 하나 없구요...표현하는 방법이 다를 뿐이고 데이타 전용처리 프로그램이라고 보시면 됩니다.
게시글테이블, 댓글테이블, 게시글조회테이블 에는 등록한 사원 컬럼이 있을거구요..
그럼 각 3개 테이블과 사원테이블과 조인 해서 부서별 각테이블의 등록 건수를 count 하신 다음 유니온으로 붙이셔서 부서별 sum 하시면
원하시는 사항을 손쉽게 만드실수 있습니다.