여러개의 테이블이 조인된 형태로
15년도 검색과 16년도 검색을 한뒤 15년 16년을 UNION ALL로 합친 후에
회사의 랭킹을 뽑아야 하는데요.
회사가 15년에는 없다가 16년에 생긴 경우
16년을 기준으로 (15년 데이터는 무시)
-- 회사의 기준은 16년 등록된것 기준으로 (15년에 데이터가 있어도 16년에 없는 회사면 무시)
# report_month, company_id, name, medias, digital, total
'2015', '4', 'Able C & C ', '3768912', '0', '3768912'
'2016', '4', 'Able C & C ', '649782', '0', '649782'
>> 2015 / 7 / Aekyung / 0 / 0 / 0
'2016', '7', 'Aekyung', '21600', '0', '21600'
>> 2015 / 8 / Aesop Korea / 0 / 0 / 0
'2016', '8', 'Aesop Korea', '25500', '0', '25500'
'2015', '10', 'AMI', '504700', '0', '504700'
'2016', '10', 'AMI', '92600', '0', '92600'
위의 데이터처럼 뽑으려고 하는데요.
막히는 부분이 15년에는 없는 회사를 어떻게 표시되도록 해야하는지 궁금합니다.
>> 2015 / 7 / Aekyung / 0 / 0 / 0
>> 2015 / 8 / Aesop Korea / 0 / 0 / 0
이 두줄의 데이터를 추가하고싶은데 어떻게 해야할지요?...........
SELECT '2015' report_month , a.company_id , a.name , IFNULL(b.medias , 0) medias , IFNULL(b.digital, 0) digital , IFNULL(b.total , 0) total FROM t a LEFT OUTER JOIN t b ON b.report_month = '2015' AND b.company_id = a.company_id WHERE a.report_month = '2016' UNION ALL SELECT a.report_month , a.company_id , a.name , a.medias , a.digital , a.total FROM t a WHERE a.report_month = '2016' ;