codice:
select t1.codiceapertura
, sum(t1.2009tot) as "2009"
, sum(t1.2009res) as "2009 resid"
, sum(t1.2009sem) as "2009 semiresid"
, sum(t1.2009ter) as "2009 territ"
, sum(t1.2010tot) as "2010"
, sum(t1.2010res) as "2010 resid"
, sum(t1.2010sem) as "2010 semiresid"
, sum(t1.2010ter) as "2010 territ"
, sum(t1.2011tot) as "2011"
, sum(t1.2011res) as "2011 resid"
, sum(t1.2011sem) as "2011 semiresid"
, sum(t1.2011ter) as "2011 territ"
, sum(t1.2009mas) as "2009 maschi"
, sum(t1.2009fem) as "2009 femmine"
, sum(t1.2010mas) as "2010 maschi"
, sum(t1.2010fem) as "2010 femmine"
, sum(t1.2011mas) as "2011 maschi"
, sum(t1.2011fem) as "2011 femmine"
from
(
select codiceapertura
, count(*) as "2009tot"
, 0 as "2009res"
, 0 as "2009sem"
, 0 as "2009ter"
, 0 as "2010tot"
, 0 as "2010res"
, 0 as "2010sem"
, 0 as "2010ter"
, 0 as "2011tot"
, 0 as "2011res"
, 0 as "2011sem"
, 0 as "2011ter"
, 0 as "2009mas"
, 0 as "2009fem"
, 0 as "2010mas"
, 0 as "2010fem"
, 0 as "2011mas"
, 0 as "2011fem"
from tbdcontatti
where year(dataapertura) = 2009
group by codiceapertura
union all
select b.codiceapertura
, 0
, count(*)
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
from tbdprestresid a, tbdcontatti b
where year(a.dataammiss) = 2009
and b.idcontatto = a.idcontatto
group by b.codiceapertura
union all
select b.codiceapertura
, 0
, 0
, count(*)
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
from tbdprestsemiresid a, tbdcontatti b
where year(a.dataammiss) = 2009
and b.idcontatto = a.idcontatto
group by b.codiceapertura
union all
select b.codiceapertura
, 0
, 0
, 0
, 1
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
from tbdprestterr a, tbdcontatti b
where year(a.dataprest) = 2009
and b.idcontatto = a.idcontatto
group by b.codiceapertura
union all
select codiceapertura
, 0
, 0
, 0
, 0
, count(*)
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
from tbdcontatti
where year(dataapertura) = 2010
group by codiceapertura
union all
select b.codiceapertura
, 0
, 0
, 0
, 0
, 0
, count(*)
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
from tbdprestresid a, tbdcontatti b
where year(a.dataammiss) = 2010
and b.idcontatto = a.idcontatto
group by b.codiceapertura
union all
select b.codiceapertura
, 0
, 0
, 0
, 0
, 0
, 0
, count(*)
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
from tbdprestsemiresid a, tbdcontatti b
where year(a.dataammiss) = 2010
and b.idcontatto = a.idcontatto
group by b.codiceapertura
union all
select b.codiceapertura
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 1
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
from tbdprestterr a, tbdcontatti b
where year(a.dataprest) = 2010
and b.idcontatto = a.idcontatto
group by b.codiceapertura
union all
select codiceapertura
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, count(*)
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
from tbdcontatti
where year(dataapertura) = 2011
group by codiceapertura
union all
select b.codiceapertura
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, count(*)
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
from tbdprestresid a, tbdcontatti b
where year(a.dataammiss) = 2011
and b.idcontatto = a.idcontatto
group by b.codiceapertura
union all
select b.codiceapertura
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, count(*)
, 0
, 0
, 0
, 0
, 0
, 0
, 0
from tbdprestsemiresid a, tbdcontatti b
where year(a.dataammiss) = 2011
and b.idcontatto = a.idcontatto
group by b.codiceapertura
union all
select b.codiceapertura
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 1
, 0
, 0
, 0
, 0
, 0
, 0
from tbdprestterr a, tbdcontatti b
where year(a.dataprest) = 2011
and b.idcontatto = a.idcontatto
group by b.codiceapertura
union all
select b.codiceapertura
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, count(*)
, 0
, 0
, 0
, 0
, 0
from tbdanagrafica a, tbdcontatti b
where year(b.dataapertura) = 2009
and b.idcontatto = a.idcontatto
and a.sesso = 1
group by b.codiceapertura
union all
select b.codiceapertura
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, count(*)
, 0
, 0
, 0
, 0
from tbdanagrafica a, tbdcontatti b
where year(b.dataapertura) = 2009
and b.idcontatto = a.idcontatto
and a.sesso = 2
group by b.codiceapertura
union all
select b.codiceapertura
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, count(*)
, 0
, 0
, 0
from tbdanagrafica a, tbdcontatti b
where year(b.dataapertura) = 2010
and b.idcontatto = a.idcontatto
and a.sesso = 1
group by b.codiceapertura
union all
select b.codiceapertura
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, count(*)
, 0
, 0
from tbdanagrafica a, tbdcontatti b
where year(b.dataapertura) = 2010
and b.idcontatto = a.idcontatto
and a.sesso = 2
group by b.codiceapertura
union all
select b.codiceapertura
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, count(*)
, 0
from tbdanagrafica a, tbdcontatti b
where year(b.dataapertura) = 2011
and b.idcontatto = a.idcontatto
and a.sesso = 1
group by b.codiceapertura
union all
select b.codiceapertura
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, 0
, count(*)
from tbdanagrafica a, tbdcontatti b
where year(b.dataapertura) = 2011
and b.idcontatto = a.idcontatto
and a.sesso = 2
group by b.codiceapertura
) t1
group by t1.codiceapertura