Dúvida Dbgrid

13/01/2006

Caros colegas,

Utilizei as seguintes instruções SQL:
Select CLF.UF, Sum(Cast(ENT.TOTAL_GERAL As FLOAT))TOTAL_GERAL
From ENTRADA ENT, CLIEN_FOR CLF
Where (ENT.CODCLIENTE = CLF.CODCLIENTE) And (ENT.COD_EMPRESA = :COD_EMPRESA)
Group By CLF.UF
Having (CLF.UF = :EMP.UF)

Deste modo consigo apenas exibir num dbgrid a soma do TOTAL_GERAL das notas fiscais de entrada dentro do ESTADO(UF).
Ex:
UF / TOTAL_GERAL
DENTRO DO ESTADO / 1500,00

A minha dúvida consiste em saber, se é possível exibir na 2ª linha deste mesmo dbgrid, o TOTAL_GERAL das notas fiscais de entrada fora do ESTADO (CLF.UF <> :EMP.UF). Ficaria do seguinte modo:
UF / TOTAL_GERAL
DENTRO DO ESTADO / 1500,00
FORA DO ESTADO / 3000,00.

Se utiliza-se um novo ClientDataSet, bastaria apenas alterar a Cláusula Having p/ (CLF.UF <> :EMP.UF). Mas aí seria necessário um novo dbrid também.

Portanto gostaria de saber se alguém pode ajudar-me a resolver esta situação.

Atenciosamente,

Alex.


Alex.ueg

Respostas

13/01/2006

Techsoft

Use o UNION:

Select ´DENTRO DO ESTADO´ AS UF, Sum(Cast(ENT.TOTAL_GERAL As FLOAT))TOTAL_GERAL
From ENTRADA ENT, CLIEN_FOR CLF
Where (ENT.CODCLIENTE = CLF.CODCLIENTE) And (ENT.COD_EMPRESA = :COD_EMPRESA)
Having (CLF.UF = :EMP.UF)
UNION
Select ´FORA DO ESTADO´ AS UF, Sum(Cast(ENT.TOTAL_GERAL As FLOAT))TOTAL_GERAL
From ENTRADA ENT, CLIEN_FOR CLF
Where (ENT.CODCLIENTE = CLF.CODCLIENTE) And (ENT.COD_EMPRESA = :COD_EMPRESA)
Having (CLF.UF <> :EMP.UF)


Talvez tenha q fazer um group by... mas ai eh detalhe... ou um distinct pode ser que resolva o caso....


Responder Citar

13/01/2006

Alex.ueg

Muito obrigado. Funcionou perfeitamente.


Responder Citar