Fórum Problemas com alias do campo no sum? #401822
26/05/2011
0
Código:
select financeiro_contas.data_vencimento, financeiro_contas.boleto_valor, case when financeiro_contas.boleto_multa_percentual = 0 then coalesce(sum(financeiro_contas.boleto_valor * 2 /100),0) else coalesce(sum(financeiro_contas.boleto_valor * financeiro_contas.boleto_multa_percentual /100),0) end as Vl_Multa, financeiro_fixo_boleto.cartorio, financeiro_fixo_boleto.serasa, financeiro_fixo_boleto.contatos, financeiro_fixo_boleto.depos_ident, financeiro_fixo_boleto.baixa, financeiro_fixo_boleto.correios_firmas, financeiro_fixo_boleto.i_contrato, financeiro_fixo_boleto.mes_fim, financeiro_fixo_boleto.multa_contrato, sum(coalesce(vl_multa,0)+ coalesce(financeiro_fixo_boleto.cartorio,0) + coalesce(financeiro_fixo_boleto.serasa,0) + coalesce(financeiro_fixo_boleto.contatos,0) + coalesce(financeiro_fixo_boleto.depos_ident,0) + coalesce(financeiro_fixo_boleto.baixa,0) + coalesce(financeiro_fixo_boleto.correios_firmas,0) + coalesce(financeiro_fixo_boleto.i_contrato,0)+ coalesce(financeiro_fixo_boleto.mes_fim,0) + coalesce(financeiro_fixo_boleto.multa_contrato,0))as Total from financeiro_contas, financeiro_fixo_boleto where financeiro_contas.codigo_cliente = :codigo and financeiro_contas.boleto = 'Sim' and financeiro_contas.cancelado <> 'Sim' group by financeiro_contas.data_vencimento, financeiro_contas.boleto_valor, financeiro_contas.boleto_multa_percentual, financeiro_fixo_boleto.cartorio, financeiro_fixo_boleto.serasa, financeiro_fixo_boleto.contatos, financeiro_fixo_boleto.depos_ident, financeiro_fixo_boleto.baixa, financeiro_fixo_boleto.correios_firmas, financeiro_fixo_boleto.i_contrato, financeiro_fixo_boleto.mes_fim, financeiro_fixo_boleto.multa_contrato
Vejam o erro de referencia
Column does not belong to referenced table.
Dynamic SQL Error.
SQL error code = -206.
Column unknown.
VL_MULTA.
At line 21, column 14.
Adriano Dolce
Curtir tópico
+ 0Posts
26/05/2011
Rafael Mattos
Gostei + 0
26/05/2011
Adriano Dolce
' CASE WHEN financeiro_contas.boleto_multa_percentual = 0 then '+ ' COALESCE(sum(financeiro_contas.boleto_valor * 2 /100),0) '+ ' ELSE '+ ' COALESCE(sum(financeiro_contas.boleto_valor * financeiro_contas.boleto_multa_percentual /100),0) '+ ' END '+ ' as Vl_Multa,'+
Gostei + 0
26/05/2011
Rafael Mattos
case when financeiro_contas.boleto_multa_percentual = 0 then
coalesce(sum(financeiro_contas.boleto_valor * 2 /100),0)
else
coalesce(sum(financeiro_contas.boleto_valor * financeiro_contas.boleto_multa_percentual /100),0)
end
as Vl_Multa,
....
sum(coalesce(vl_multa,0)+
----------------------
se esse sum tiver sendo de case ele não aceita isso vc teria que colocar tudo dentro novamente
-----------------------
sum(coalesce(case when financeiro_contas.boleto_multa_percentual = 0 then
coalesce(sum(financeiro_contas.boleto_valor * 2 /100),0)
else
coalesce(sum(financeiro_contas.boleto_valor * financeiro_contas.boleto_multa_percentual /100),0)
end,0)+
Gostei + 0
26/05/2011
Rafael Mattos
' CASE WHEN financeiro_contas.boleto_multa_percentual = 0 then '+ ' COALESCE(sum(financeiro_contas.boleto_valor * 2 /100),0) '+ ' ELSE '+ ' COALESCE(sum(financeiro_contas.boleto_valor * financeiro_contas.boleto_multa_percentual /100),0) '+ ' END '+ ' as Vl_Multa,'+
entendi ele não aceita esse tipo de referencia, pq está no proprio select
Gostei + 0
26/05/2011
Adriano Dolce
' CASE WHEN financeiro_contas.boleto_multa_percentual = 0 then '+ ' COALESCE(sum(financeiro_contas.boleto_valor * 2 /100),0) '+ ' ELSE '+ ' COALESCE(sum(financeiro_contas.boleto_valor * financeiro_contas.boleto_multa_percentual /100),0) '+ ' END '+ ' as Vl_Multa,'+
entendi ele não aceita esse tipo de referencia, pq está no proprio select
Proeciso da soma no final.
Gostei + 0
26/05/2011
Emerson Nascimento
select
financeiro_contas.data_vencimento,
financeiro_contas.boleto_valor,
case when financeiro_contas.boleto_multa_percentual = 0
then coalesce(financeiro_contas.boleto_valor,0) * 2 / 100
else coalesce(financeiro_contas.boleto_valor,0) * financeiro_contas.boleto_multa_percentual / 100
end as Vl_Multa,
financeiro_fixo_boleto.cartorio,
financeiro_fixo_boleto.serasa,
financeiro_fixo_boleto.contatos,
financeiro_fixo_boleto.depos_ident,
financeiro_fixo_boleto.baixa,
financeiro_fixo_boleto.correios_firmas,
financeiro_fixo_boleto.i_contrato,
financeiro_fixo_boleto.mes_fim,
financeiro_fixo_boleto.multa_contrato,
sum(
(case when financeiro_contas.boleto_multa_percentual = 0
then coalesce(financeiro_contas.boleto_valor,0) * 2 / 100
else coalesce(financeiro_contas.boleto_valor,0) * financeiro_contas.boleto_multa_percentual / 100
end) +
coalesce(financeiro_fixo_boleto.cartorio,0) +
coalesce(financeiro_fixo_boleto.serasa,0) +
coalesce(financeiro_fixo_boleto.contatos,0) +
coalesce(financeiro_fixo_boleto.depos_ident,0) +
coalesce(financeiro_fixo_boleto.baixa,0) +
coalesce(financeiro_fixo_boleto.correios_firmas,0) +
coalesce(financeiro_fixo_boleto.i_contrato,0)+
coalesce(financeiro_fixo_boleto.mes_fim,0) +
coalesce(financeiro_fixo_boleto.multa_contrato,0)
) as Total
from
financeiro_contas, financeiro_fixo_boleto
where
financeiro_contas.codigo_cliente = :codigo
and financeiro_contas.boleto = 'Sim'
and financeiro_contas.cancelado <> 'Sim'
group by
financeiro_contas.data_vencimento,
financeiro_contas.boleto_valor,
financeiro_contas.boleto_multa_percentual,
financeiro_fixo_boleto.cartorio,
financeiro_fixo_boleto.serasa,
financeiro_fixo_boleto.contatos,
financeiro_fixo_boleto.depos_ident,
financeiro_fixo_boleto.baixa,
financeiro_fixo_boleto.correios_firmas,
financeiro_fixo_boleto.i_contrato,
financeiro_fixo_boleto.mes_fim,
financeiro_fixo_boleto.multa_contrato
mas observei um PEQUENO detalhe: em que momento você está relacionando as tabelas financeiro_contas e financeiro_fixo_boleto ???
Gostei + 0
26/05/2011
Adriano Dolce
Nao existe relacionamento, pois na tabela financeiro_fixo_boleto possui apenas uma linha, é um valor fixo para todos
Valeu amigo, agora deu certo, muito obrigado a todos que me ajudaram.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)