I'm trying to get a report to show different results in each line
select
count(case when call_type='I' and cl.client_ID not like 391 and c.call_start >= '2017/04/01' and c.call_start <= '2017/04/30'then 1 else null end) as Incoming_Main_April,
count(case when call_type='O' and cl.client_ID not like 391 and c.call_start >= '2017/04/01' and c.call_start <= '2017/04/30'then 1 else null end) as Outgoing_Main_April,
count(case when call_type='I' and cl.client_ID=391 and c.call_start >= '2017/04/01' and c.call_start <= '2017/04/30'then 1 else null end) as Incoming_SMG_April,
count(case when call_type='O' and cl.client_ID=391 and c.call_start >= '2017/04/01' and c.call_start <= '2017/04/30'then 1 else null end) as Outgoing_SMG_April
from
CALLS c
left outer join CONTACTS ct on c.CONTACT_ID= ct.CONTACT_ID
left outer join clients cl on cl.client_id= ct.COMPANY_ID where cl.RECORD_STATUS='A'
and c.OPERATOR_ID in (1510,2938,12443,4482,8911,6947,2056,1969,1952,2223,1511,2224,2039,2055,2085,1949,5963,1502,11112,1633,2034,2057)
order by
count(call_type)
the above, for example, will give me 4 columns with 1 line result. Now I would like to have March (for example) on the second line ... and so on.
suggestions?
Imho, you are better off using a
GROUP BY
for this:Note, how I included
EXTRACT()
evaluation afterselect
,where
andgroup by
.