Fórum Uso de procedure no banco #56705
03/08/2006
0
Pessoal
Estou com um problema para achar um resultado de comandos Sql..
Estou tentando usar um case when + acho que não tem solução..
É uma exibição no relatório onde dependendo do campo se case fgsomatot = 1 por exemplo tem que exibir valores nas colunas contrato e aluguel mas se caso for = 2, então tem que verificar se contrato > aluguel então exibi contrato caso contrato = aluguel então exibi aluguel e se contrato < aluguel então exibi aluguel também.. Tentei usar Case when, mas não dá certo. Nesse caso será que somente resolve com procedures ??? Como fazer ???
Aguardo um retorno
Rogério
Estou com um problema para achar um resultado de comandos Sql..
Estou tentando usar um case when + acho que não tem solução..
É uma exibição no relatório onde dependendo do campo se case fgsomatot = 1 por exemplo tem que exibir valores nas colunas contrato e aluguel mas se caso for = 2, então tem que verificar se contrato > aluguel então exibi contrato caso contrato = aluguel então exibi aluguel e se contrato < aluguel então exibi aluguel também.. Tentei usar Case when, mas não dá certo. Nesse caso será que somente resolve com procedures ??? Como fazer ???
Aguardo um retorno
Rogério
Rogeranalista
Curtir tópico
+ 0
Responder
Posts
04/08/2006
Rodolpho123
Envia sua qry pra gente...
Responder
Gostei + 0
09/08/2006
Rogeranalista
Rodolfo
Aquele problema com case when, já resolvi. Mas estou com problema de duplicação de registros, isso em outro relatório
Segue a query abaixo
SELECT C.IDFANTASIA,
CASE WHEN IC.FGCOBRANCA <> 5 THEN SUM(SS.QTQUANTIDADE) * IC.MNCONTRATO
WHEN IC.FGCOBRANCA = 5 THEN SUM(SS.MNCONTRATO )
ELSE SUM(IC.MNALUGUEL)
END AS MNMNCONTRATO, IC.MNALUGUEL as MNMNALUGUEL
from FMCONTRATO CON
inner join FMITEMCONTRATO ic on (con.CDCONTRATO = ic. CDCONTRATO)
inner join FMSOLSERV SS ON (CON.CDCONTRATO = SS.NRCONTRATO)
inner join CMCOMPANHIA c on (C.CDCOMPANHIA = con.CDEMPRESA)
WHERE ss.FGSITUACAO = 1
AND ss.DTAGENDAMENTO >= ´07/21/2006´
AND ss.DTAGENDAMENTO <= ´08/20/2006´
group by c. IDFANTASIA, ic. MNCONTRATO, ic. MNALUGUEL, ss. QTQUANTIDADE, ic. FGCOBRANCA
order by c. IDFANTASIA
Está duplicando registros
Sou usuário do Firebird 2.0 + Delphi 6 + conexão ADO
Rogério
Aquele problema com case when, já resolvi. Mas estou com problema de duplicação de registros, isso em outro relatório
Segue a query abaixo
SELECT C.IDFANTASIA,
CASE WHEN IC.FGCOBRANCA <> 5 THEN SUM(SS.QTQUANTIDADE) * IC.MNCONTRATO
WHEN IC.FGCOBRANCA = 5 THEN SUM(SS.MNCONTRATO )
ELSE SUM(IC.MNALUGUEL)
END AS MNMNCONTRATO, IC.MNALUGUEL as MNMNALUGUEL
from FMCONTRATO CON
inner join FMITEMCONTRATO ic on (con.CDCONTRATO = ic. CDCONTRATO)
inner join FMSOLSERV SS ON (CON.CDCONTRATO = SS.NRCONTRATO)
inner join CMCOMPANHIA c on (C.CDCOMPANHIA = con.CDEMPRESA)
WHERE ss.FGSITUACAO = 1
AND ss.DTAGENDAMENTO >= ´07/21/2006´
AND ss.DTAGENDAMENTO <= ´08/20/2006´
group by c. IDFANTASIA, ic. MNCONTRATO, ic. MNALUGUEL, ss. QTQUANTIDADE, ic. FGCOBRANCA
order by c. IDFANTASIA
Está duplicando registros
Sou usuário do Firebird 2.0 + Delphi 6 + conexão ADO
Rogério
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)