Select count dentro de uma clausula where ou no left join
07/07/2010
0
Jorge Meneses
Posts
07/07/2010
Jorge Meneses
(select sum (cc.valor) from caixaconta cc where cc.caixaconta = ca.codigo and month (ca.data) = 1 and year (ca.data) = 2010)JAN,
(select sum (cc.valor) from caixaconta cc where cc.caixaconta = ca.codigo and month (ca.data) = 2 and year (ca.data) = 2010)FEV,
(select sum (cc.valor) from caixaconta cc where cc.caixaconta = ca.codigo and month (ca.data) = 3 and year (ca.data) = 2010)MAR,
(select sum (cc.valor) from caixaconta cc where cc.caixaconta = ca.codigo and month (ca.data) = 4 and year (ca.data) = 2010)ABR,
(select sum (cc.valor) from caixaconta cc where cc.caixaconta = ca.codigo and month (ca.data) = 5 and year (ca.data) = 2010)MAI,
(select sum (cc.valor) from caixaconta cc where cc.caixaconta = ca.codigo and month (ca.data) = 6 and year (ca.data) = 2010)JUN,
(select sum (cc.valor) from caixaconta cc where cc.caixaconta = ca.codigo and month (ca.data) = 7 and year (ca.data) = 2010)JUL,
(select sum (cc.valor) from caixaconta cc where cc.caixaconta = ca.codigo and month (ca.data) = 8 and year (ca.data) = 2010)AGO,
(select sum (cc.valor) from caixaconta cc where cc.caixaconta = ca.codigo and month (ca.data) = 9 and year (ca.data) = 2010)SEP,
(select sum (cc.valor) from caixaconta cc where cc.caixaconta = ca.codigo and month (ca.data) = 10 and year (ca.data) = 2010)OCT,
(select sum (cc.valor) from caixaconta cc where cc.caixaconta = ca.codigo and month (ca.data) = 11 and year (ca.data) = 2010)NOV,
(select sum (cc.valor) from caixaconta cc where cc.caixaconta = ca.codigo and month (ca.data) = 12 and year (ca.data) = 2010)DEZ,
(select sum (cc.valor) from caixaconta cc where cc.caixaconta = ca.codigo and year (ca.data) = 2010)Total
from dbo.caixa ca
left join dbo.congregacaomovimento cm on cm.codpessoa = ca.cliente
and (ca.data >= cm.datainclusao and cm.dataexclusao is null)
left join pessoa pe on pe.codigo = cm.codpessoa
left join congregacao co on co.codigo = cm.codcongregacao
left join entidade en on en.codigo = ca.codentidade
left join caixaconta cc on cc.caixaconta = ca.codigo
left join conta ct on ct.codigo = cc.codconta
inner join parametros pa on pa.contapadraodizimo = ct.codigo
left join celulaintegrante ci on ci.codpessoa = pe.codigo
left join celula ce on ce.codigo = ci.codcelula
left join pessoa li on li.codigo = ce.lider
where cm.codentidade = 15 union all select distinct en.nome nomeigreja,co.nome as congregacao,co.codigo,li.nome lider,pe.nome,pe.sexo,pe.membro,ct.nome conta,
(select sum (cc.valor) from caixaconta cc where cc.caixaconta = ca.codigo and month (ca.data) = 1 and year (ca.data) = 2010)JAN,
(select sum (cc.valor) from caixaconta cc where cc.caixaconta = ca.codigo and month (ca.data) = 2 and year (ca.data) = 2010)FEV,
(select sum (cc.valor) from caixaconta cc where cc.caixaconta = ca.codigo and month (ca.data) = 3 and year (ca.data) = 2010)MAR,
(select sum (cc.valor) from caixaconta cc where cc.caixaconta = ca.codigo and month (ca.data) = 4 and year (ca.data) = 2010)ABR,
(select sum (cc.valor) from caixaconta cc where cc.caixaconta = ca.codigo and month (ca.data) = 5 and year (ca.data) = 2010)MAI,
(select sum (cc.valor) from caixaconta cc where cc.caixaconta = ca.codigo and month (ca.data) = 6 and year (ca.data) = 2010)JUN,
(select sum (cc.valor) from caixaconta cc where cc.caixaconta = ca.codigo and month (ca.data) = 7 and year (ca.data) = 2010)JUL,
(select sum (cc.valor) from caixaconta cc where cc.caixaconta = ca.codigo and month (ca.data) = 8 and year (ca.data) = 2010)AGO,
(select sum (cc.valor) from caixaconta cc where cc.caixaconta = ca.codigo and month (ca.data) = 9 and year (ca.data) = 2010)SEP,
(select sum (cc.valor) from caixaconta cc where cc.caixaconta = ca.codigo and month (ca.data) = 10 and year (ca.data) = 2010)OCT,
(select sum (cc.valor) from caixaconta cc where cc.caixaconta = ca.codigo and month (ca.data) = 11 and year (ca.data) = 2010)NOV,
(select sum (cc.valor) from caixaconta cc where cc.caixaconta = ca.codigo and month (ca.data) = 12 and year (ca.data) = 2010)DEZ,
(select sum (cc.valor) from caixaconta cc where cc.caixaconta = ca.codigo and year (ca.data) = 2010)Total from dbo.caixa ca
left join dbo.congregacaomovimento cm on cm.codpessoa = ca.cliente
and (ca.data >= cm.datainclusao and ca.data <= cm.dataexclusao)
left join pessoa pe on pe.codigo = cm.codpessoa
left join congregacao co on co.codigo = cm.codcongregacao
left join entidade en on en.codigo = ca.codentidade
left join caixaconta cc on cc.caixaconta = ca.codigo
left join conta ct on ct.codigo = cc.codconta
inner join parametros pa on pa.contapadraodizimo = ct.codigo
left join celulaintegrante ci on ci.codpessoa = pe.codigo
left join celula ce on ce.codigo = ci.codcelula
left join pessoa li on li.codigo = ce.lider where cm.codentidade = 15
order by co.nome,li.nome,pe.nome
07/07/2010
Emerson Nascimento
algo assim:
select
en.nome nomeigreja, co.nome congregacao, co.codigo,
li.nome lider, pe.nome, pe.sexo, pe.membro, ct.nome conta,
sum(case when month(ca.data) = 1 then cc.valor else 0 end) JAN,
sum(case when month(ca.data) = 2 then cc.valor else 0 end) FEV,
sum(case when month(ca.data) = 3 then cc.valor else 0 end) MAR,
sum(case when month(ca.data) = 4 then cc.valor else 0 end) ABR,
sum(case when month(ca.data) = 5 then cc.valor else 0 end) MAI,
sum(case when month(ca.data) = 6 then cc.valor else 0 end) JUN,
sum(case when month(ca.data) = 7 then cc.valor else 0 end) JUL,
sum(case when month(ca.data) = 8 then cc.valor else 0 end) AGO,
sum(case when month(ca.data) = 9 then cc.valor else 0 end) SEP,
sum(case when month(ca.data) = 10 then cc.valor else 0 end) OCT,
sum(case when month(ca.data) = 11 then cc.valor else 0 end) NOV,
sum(case when month(ca.data) = 12 then cc.valor else 0 end) DEZ,
sum(cc.valor) TOTAL
from pessoa pe
left join dbo.caixa ca on ca.cliente = pe.codigo
and ca.data between '01.01.2010' and '31.12.2010'
left join dbo.congregacaomovimento cm on cm.codpessoa = pe.codpessoa
and cm.datainclusao >= ca.data and cm.dataexclusao is null
left join congregacao co on co.codigo = cm.codcongregacao
left join entidade en on en.codigo = ca.codentidade
left join caixaconta cc on cc.caixaconta = ca.codigo
left join conta ct on ct.codigo = cc.codconta
inner join parametros pa on pa.contapadraodizimo = ct.codigo
left join celulaintegrante ci on ci.codpessoa = pe.codigo
left join celula ce on ce.codigo = ci.codcelula
left join pessoa li on li.codigo = ce.lider
where cm.codentidade = 15
group by
en.nome, co.nome, co.codigo,
li.nome, pe.nome, pe.sexo, pe.membro, ct.nome
07/07/2010
Jorge Meneses
07/07/2010
Emerson Nascimento
inner join parametros pa on pa.contapadraodizimo = ct.codigo
por
left join parametros pa on pa.contapadraodizimo = ct.codigo
Clique aqui para fazer login e interagir na Comunidade :)