SQL - Group By
Pessoal,
Bom dia!
Em um banco Firebird 1.5 eu tenho a seguinte tabela com os respectivos
campos:
Com este SQL:
Eu consigo a quantidade de lançamento para cada usuário:
O que eu estou precisando na verdade é retornar isso mais a quantidade de registros separados pelo campo STATUS que pode ter dois valores:
P – PENDENTE
R – RESOLVIDO
Então ficaria algo assim:
É possível fazer isto que estou precisando?
Desde já agradeço pela atenção.
Abraço a todos!
Bom dia!
Em um banco Firebird 1.5 eu tenho a seguinte tabela com os respectivos
campos:
TB_TESTE ID_TB_TESTE INTEGER PK ID_OPERACAO INTEGER ID_USUARIO INTEGER STATUS CHAR(1)
Com este SQL:
select ID_USUARIO, count(*) from TB_TESTE where ID_OPERACAO = 1 group by 1
Eu consigo a quantidade de lançamento para cada usuário:
ID_USUARIO COUNT 1 18 2 19
O que eu estou precisando na verdade é retornar isso mais a quantidade de registros separados pelo campo STATUS que pode ter dois valores:
P – PENDENTE
R – RESOLVIDO
Então ficaria algo assim:
ID_USUARIO COUNT PENDENTE RESOLVIDO 1 18 10 8 2 19 12 7
É possível fazer isto que estou precisando?
Desde já agradeço pela atenção.
Abraço a todos!
Mmoreira
Curtidas 0
Respostas
Jáder Medeiros
08/11/2007
Select a.ID_Usuario, b.Pendente+c.Resolvido Count, b.Pendente, c.Resolvido From TB_TESTE a Left Join (Select ID_Usuario, Count(1) Pendente From TB_TESTE Where Status = ´P´ Group By ID_Usuario) b On a.ID_Usuario = b.ID_Usuario Left Join (Select ID_Usuario, Count(1) Resolvido From TB_TESTE Where Status = ´R´ Group By ID_Usuario) c On a.ID_Usuario = c.ID_Usuario Where a.ID_Operacao = 1 Group By a.ID_Usuario, b.Pendente+c.Resolvido, b.Pendente, c.Resolvido
GOSTEI 0
Mmoreira
08/11/2007
Jader,
Este sql nao esta funcionando pois estao aparecendo alguns erros.
Depois da uma conferida ai no codigo.
Valew
Este sql nao esta funcionando pois estao aparecendo alguns erros.
Depois da uma conferida ai no codigo.
Valew
GOSTEI 0
Jáder Medeiros
08/11/2007
Alguns erros? Que erros? Eu testei exatamente esse SQL na estrutura que você disse e funcionou. Me diga qual foi o erro apontado.
GOSTEI 0
Mmoreira
08/11/2007
Jader,
A primeira coisa que nao esta passando é este Count que vc colocou logo depois de:
Retirando este Count ele ja da erro no primeiro subselect
Da uma olhada ai ... nao sei se pode ser isso mas a versao do Firebird que estou rodando é a 1.5
A primeira coisa que nao esta passando é este Count que vc colocou logo depois de:
, b.Pendente+c.Resolvido Count
Retirando este Count ele ja da erro no primeiro subselect
Da uma olhada ai ... nao sei se pode ser isso mas a versao do Firebird que estou rodando é a 1.5
GOSTEI 0
Jáder Medeiros
08/11/2007
Realmente, o alias [b:fe84ec1c33]Count[/b:fe84ec1c33] deveria ter sido retirado. Ele é uma palavra reservada no FireBird.
Quando ao SubSelect, não sei se esta versão de FireBird suporta. A versão que estou usando é [b:fe84ec1c33]2.0.1.12855[/b:fe84ec1c33].
Quando eu chegar em casa (19h), instalo esta versão que você possui e vou testar.
Quando ao SubSelect, não sei se esta versão de FireBird suporta. A versão que estou usando é [b:fe84ec1c33]2.0.1.12855[/b:fe84ec1c33].
Quando eu chegar em casa (19h), instalo esta versão que você possui e vou testar.
GOSTEI 0
Mmoreira
08/11/2007
Jader,
Ao que parece a versao que estou usando nao suporta este subselect que voce usou ... vou ver se instalo esta versao para teste.
Obrigado pela atenção!
Ao que parece a versao que estou usando nao suporta este subselect que voce usou ... vou ver se instalo esta versao para teste.
Obrigado pela atenção!
GOSTEI 0