조회 해야 할 것: 총 4개
1. loca_name (위치명)
2. loca_id (위치의 pk인 id)
3. surv_id (총 대상수)
4. surv_status_flg 가 9가 아닌 surv_id
인데
원래는 제 역량의 부족으로 인해
select a.loca_name, a.loca_id, ifnull(b.surv_id, 0)
from location as a
left outer join(
select loca_id, count(surv_id) as surv_id
from survey_his
group by loca_id
) as b
on (a.loca_id = b.loca_id)
group by a.loca_id ;
이렇게 3개를 리턴하고
select a.loca_name, a.loca_id, ifnull(b.surv_id, 0)
from location as a
left outer join(
select loca_id, count(surv_id) as surv_id
from survey_his
where surv_status_flg <> 9
group by loca_id
) as b
on (a.loca_id = b.loca_id)
group by a.loca_id ;
또 이렇게 3개를 리턴해서 하나만 가져오는 식으로 사용했는데
쿼리 결과값이 첫 번째 쿼리가
"기타부서" "1" "0"
"강남지원" "2" "6"
"경영지원팀" "3" "2"
"지원사무실" "4" "582"
"사업지원팀" "5" "0"
"시험분석팀" "6" "0"
"개성검사센터" "7" "0"
"제품검사팀" "8" "0"
이렇게 나오는 경우 0을 배제하기 위해 또 제가 0을 제거하는 함수를 돌려야 해서
select a.loca_name, a.loca_id, count(b.surv_id)
from location as a , survey_his as b
on a.loca_id = b.loca_id
group by a.loca_id ;
이런 식으로 하나의 쿼리문으로 변환하려 하는데 가능한 것인지 궁금합니다
저거의 결과값은
"강남지원" "2" "6"
"경영지원팀" "3" "2"
"지원사무실" "4" "582"
이렇게 0이 없는 상태로 나오는데
조건절을 넣어서
surv_status_flg의 count 수가 0인 경우에도
앞의 surv_id가 있는 경우에만 0을 출력하도록 변경 가능할까요?
"강남지원" "2" "6" "0"
"경영지원팀" "3" "2" "0"
"지원사무실" "4" "582" "0"
원하는 결과값은 이러한 형태인데
제가 제작한 것은
"기타부서" "1" "0" "0"
"강남지원" "2" "6" "0"
"경영지원팀" "3" "2" "0"
"지원사무실" "4" "582" "0"
"사업지원팀" "5" "0" "0"
"시험분석팀" "6" "0" "0"
"개성검사센터" "7" "0" "0"
"제품검사팀" "8" "0""0"
이런 식으로 0을 모두 뽑아줍니다.
어떤 식으로 변경해야 할 지 방향을 가르쳐 주시면 감사하겠습니다 ㅠㅠ...