[firebase-br] DUAS SOMAS EM UMA SELECT

RedDevil reddevil em reddevil.eti.br
Qui Set 22 23:23:16 -03 2005


ola Rodrigo,

para o caso deste teu post ainda nao estar "vencido", e tambem para o 
caso do case (ate rima: o caso do case...;o) nao ter dado certo, eu 
estou colocando ae abaixo uma adaptaçao da SP que eu coloquei na roda 
hoje pela manha...

aquela SP te retornava todos os registros da tabela usuarios, com as 
suas respectivas somas, o que poderia torna-la um tanto quanto demorada...

esta versao ae abaixo vai te retornar as somas apenas do usuario que 
voce passar como parametro para a SP...

create procedure persephone ( pcoduser )
returns(codusuario integer, nomusuario varchar(50), ts numeric(18,2), tp 
numeric(18,2))
as
begin

select u.usuario, u.nomeusuario
from usuarios u
where u.usuario = :pcoduser
into :codusuario, :nomusuario

select sum(p.valor) from pabx p
where <p.campo_codigo_do_usuario> = :codusuario and p.tipoligacao = 'S'
into :ts;

select sum(p.valor) from pabx p
where <p.campo_codigo_do_usuario> = :codusuario and p.tipoligacao = 'P'
into :tp;

suspend;

end


boa sorte ae...


[]s
força sempre.
ate +++

--
Luiz "RedDevil" Stefanski - Linux User #399026
http://www.RedDevil.eti.br - Delphi 4 Powered by IBObjects
exemplos e dicas sobre o IBObjects:
http://www.firebase.com.br/cgi-bin/firebase.cgi/dnld?ID=165
compilaçao/instalaçao do IBObjects sabor BPG:
http://www.firebase.com.br/cgi-bin/firebase.cgi/artigo?ID=630



Post By Rodrigo Paiola:
> Caros amigos
> 
> Preciso fazer duas somas em uma unica select, mais ou menos assim:
> 
> select u.usuario,
>         u.nomeusuario,
>         case u.tipoligacao
>            when = 'P' then sum(p.valor)
>          end as Total_Particular,
>          sum(p.valor) as Total_Serviço
> from usuarios u, pabx p
> 
> preciso que o resultado da query seja:
> 
> usuario     nomeusuario                total_particular      total_Servico
> 00522     RODRIGO PAIOLA                 12,00                  5,00
> 
> QUERO SOMAR DE ACORDO COM O TIPO, ISSO É POSSIVEL ?
> 
> a tabela está assim (PABX):
> 
> 00522  12/12/2005  P     1,20
> 00522  13/10/2005  P     0,60
> 00522  13/10/2005  S     0,70
> 00743  13/10/2005  P     0,80
> 
> quero agrupar por usuário como mostrei no resultado acima !
> 
> Obrigado
> 
> Rodrigo.
> 
> 






Mais detalhes sobre a lista de discussão lista