select p.loca_id pid, count(*) cnt, count(h.prod_id) cntid, l.loca_name name
from product p
left outer join surveyH h
on p.prod_id = h.prod_id
left outer join location l
on l.loca_id = p.loca_id
where h.surv_year = 2017
and h.surv_no = 1
group by p.loca_id, l.loca_name
order by p.loca_id asc
이렇게 생긴 쿼리이고
결과값은
11 13 13 대전영업팀(임원실)
12 100 100 대전영업팀(사무실)
13 21 21 대전영업팀(자료실)
14 19 19 대전영업팀(회의실)
15 5 5 대전영업팀(탕비실)
16 1 1 대전영업팀(차량)
17 3 3 대전영업팀(공장동)
이런 식으로 나오는데
여기서 세번째에게
and h.surv_res = 1 이런 속성을 줘서
11 13 0 대전영업팀(임원실)
12 100 0 대전영업팀(사무실)
13 21 0 대전영업팀(자료실)
14 19 1 대전영업팀(회의실)
15 5 0 대전영업팀(탕비실)
16 1 0 대전영업팀(차량)
17 3 0 대전영업팀(공장동)
이런 식으로 값을 바꾸고 싶습니다.
sqlite에서는
sql = " select s.LOCA_ID, s.LOCA_NAME, count(s.prod_id), ifnull(p.prod_id, 0) " + " from SURVEY_PROD as s " + " left outer join( " + " select loca_id, count(prod_id) as prod_id " + " from survey_prod " + " where prod_status_flg = 1 " + " group by loca_id " + " ) as p " + " on (p.loca_id = s.loca_id) " + " group by s.LOCA_ID " + " order by s.loca_id asc ";
요런 식으로 작성했는데 오라클에서는 잘 모르겠네요...
도움 부탁드립니다!!