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


Rogeranalista

Rogeranalista

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


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar