Uso de procedure no banco

Firebird

03/08/2006

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

Curtidas 0

Respostas

Rodolpho123

Rodolpho123

03/08/2006

Envia sua qry pra gente...


GOSTEI 0
Rogeranalista

Rogeranalista

03/08/2006

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


GOSTEI 0
POSTAR