Q&A

  • [질문 및참고]퀵레포트로 구연하려고 하는데 막혀요?(유용한 쿼리참고하세요)
안녕하세요? 지금 막 축구가 시작했군요....제발 3점 승리를했으면......



다름이 아니라 아래 쿼리는 다른분들도 참고 하세요....유용할거 같은데...



우서 제가 작성한 쿼리를 보여드리겠습니다.(너무길어서 제대로 보여야 할텐데 걱정이군요)



Declare

@Date Char(10)

Set @date = '2000-08-01'

select

substring(B.HBuseoName,1,10) "부서명",

('남자') 성별,

convert(char(6), sum( case when a.hjikchaek = '00010' then 1 else 0 end)) "대표이사",

convert(char(6), sum( case when a.hjikchaek = '00013' then 1 else 0 end)) "전무이사",

convert(char(6), sum( case when a.hjikchaek = '00015' then 1 else 0 end)) "상무이사",

convert(char(6), sum( case when a.hjikchaek = '00017' then 1 else 0 end)) "이사",

convert(char(6), sum( case when a.hjikchaek = '00020' then 1 else 0 end)) "부장",

convert(char(6), sum( case when a.hjikchaek = '00024' then 1 else 0 end)) "과장",

convert(char(6), sum( case when a.hjikchaek = '00026' then 1 else 0 end)) "대리",

convert(char(6), sum( case when a.hjikchaek = '00027' then 1 else 0 end)) "계장",

convert(char(6), sum( case when a.hjikchaek = '00028' then 1 else 0 end)) "주임",

convert(char(6), sum( case when a.hjikchaek = '00030' then 1 else 0 end)) "사원",

convert(char(6), sum( case when a.hjikchaek = '00040' then 1 else 0 end)) "별정"

from

(HM_Master A INNER JOIN CC_Buseo B

On A.HBuseo = B.HBuseo and

SubString(A.HJuminNo,7,1) in (1,3))



where

A.HWork <> '2' or

(A.HWork = '2' and A.DRetire > @Date)

group by

a.HBuseo, b.hbuseoname



union all

/* 부서별 여자 */

select

substring(B.HBuseoName,1,10) "부서명",

('여자') 성별,

convert(char(6), sum( case when a.hjikchaek = '00010' then 1 else 0 end)) "대표이사",

convert(char(6), sum( case when a.hjikchaek = '00013' then 1 else 0 end)) "전무이사",

convert(char(6), sum( case when a.hjikchaek = '00015' then 1 else 0 end)) "상무이사",

convert(char(6), sum( case when a.hjikchaek = '00017' then 1 else 0 end)) "이사",

convert(char(6), sum( case when a.hjikchaek = '00020' then 1 else 0 end)) "부장",

convert(char(6), sum( case when a.hjikchaek = '00024' then 1 else 0 end)) "과장",

convert(char(6), sum( case when a.hjikchaek = '00026' then 1 else 0 end)) "대리",

convert(char(6), sum( case when a.hjikchaek = '00027' then 1 else 0 end)) "계장",

convert(char(6), sum( case when a.hjikchaek = '00028' then 1 else 0 end)) "주임",

convert(char(6), sum( case when a.hjikchaek = '00030' then 1 else 0 end)) "사원",

convert(char(6), sum( case when a.hjikchaek = '00040' then 1 else 0 end)) "별정"

from

(HM_Master A INNER JOIN CC_Buseo B

On A.HBuseo = B.HBuseo and

SubString(A.HJuminNo,7,1) in (2,4))



where

A.HWork <> '2' or

(A.HWork = '2' and A.DRetire > @Date)

group by

a.HBuseo, b.hbuseoname

order by 1





위 쿼리는 "부서별/직책별 인원현황"을 보이는 것입니다. 쿼리결과는





부서명 성별 대표이사 전무이사 상무이사 이사 부장 과장 대리 계장 주임 사원 별정 -------------------- ---- ------ ------ ------ ------ ------ ------ ------------ ------ ------

구매팀 남자 0 0 0 0 0 0 0 0 0 2 0

임원 남자 2 0 0 0 0 0 0 0 0 0 0

임원 여자 1 0 0 0 0 0 0 0 0 0 0



위와 같이 나옵니다. 그런데 이렇게 해놓고 퀵레포트를 구연하려고 하니 좀더 보강해야할것들이 생기더군요. 퀵레포트로 구연하고자 하는 화면입니다.





부서명 성별 대표이사 전무이사 상무이사 이사 부장 과장 대리 계장 주임 사원 별정 합계

-------------------- ---- ------ ------ ------ ------ ------ ------ ------------ ------ ------ ------

구매팀 남자 0 0 0 0 0 0 0 0 0 2 0 ?

임원 남자 2 0 0 0 0 0 0 0 0 0 0 ?

임원 여자 1 0 0 0 0 0 0 0 0 0 0 ?

-------------------------------------------------------------------------------------------------------------------------

합계 남 ? ? ? ? ? ? ? ? ? ? ? ?

녀 ? ? ? ? ? ? ? ? ? ? ? ?



여기서 위 쿼리만 가지고는 합계를 구할수 있나요? 혹시 그런 방법이 있으면 가르쳐 주세요. 아니면 합계부분에 label을 써서 구할수 있는 방법을 알려 주셨으면 합니다. 눈치보여서 축구도 못보고....^^ 저도 초보지만 위 쿼리문 유용할거 같아 많은 분들이 참고 하셨으면 합니다.





글올려놓고 열라 고민해야 할거 같아요.......그럼 다른 분들 즐코하세요.



0  COMMENTS