Usuário com melhor resposta
FREQUENCIA DE UMA CONTA

Pergunta
-
oi pessoal, preciso de uma ajuda vossa!
eu tenho as segintes tabelas
CLIENTE(conta,nome,saldo,agencia)
DEPOSITO(id,conta.agencia)
eu preciso um select que me retorna o numero de vezes em que cada conta fez deposito(AS 5 + ALTAS).
eu ja consegui fazer um que me retorna os 5 saldo mais alto do cliente, com esta query:
select top 5 conta, saldo from cliente order by saldo desc
agora não vejo como retornar o numero de vez de cada conta num deposito.
"Abraão" - Apreciador de Programação "Senhor Jesus, ilumine o meu caminho..."
- Editado Joaquim Costa (Abraão) quarta-feira, 30 de outubro de 2013 14:13
Respostas
-
Abraão, ainda estou achando confuso.
Experimente fazer um teste com a query abaixo para ver se é obtido o resultado desejado:
select top 5 c.conta, c.saldo, count(*) as QtdeDepositos from cliente as c inner join deposito as d on d.conta = c.conta group by c.conta, c.saldo order by c.saldo desc
Se não for obtido o resultado desejado, acho que talvez seja melhor você postar um exemplo com algumas linhas das 2 tabelas e o respectivo resultado esperado para facilitar o entendimento da questão.
Espero que ajude.
Assinatura: http://www.imoveisemexposicao.com.br
- Sugerido como Resposta Giovani Cr sexta-feira, 1 de novembro de 2013 18:08
- Marcado como Resposta Joaquim Costa (Abraão) terça-feira, 5 de novembro de 2013 00:17
Todas as Respostas
-
Bom dia,
Abraão, não sei se entendi corretamente a questão... se você quer retornar as 5 linhas de cada conta em que a coluna saldo tenha o maior valor, experimente dessa forma:
with CTE_RN as ( select conta, saldo, ROW_NUMBER() OVER(PARTITION BY conta ORDER BY saldo DESC) as RN from cliente ) select * from CTE_RN where RN <= 5
Espero que ajude.
Assinatura: http://www.imoveisemexposicao.com.br
- Sugerido como Resposta Durval RamosModerator quarta-feira, 30 de outubro de 2013 16:16
-
-
Abraão, ainda estou achando confuso.
Experimente fazer um teste com a query abaixo para ver se é obtido o resultado desejado:
select top 5 c.conta, c.saldo, count(*) as QtdeDepositos from cliente as c inner join deposito as d on d.conta = c.conta group by c.conta, c.saldo order by c.saldo desc
Se não for obtido o resultado desejado, acho que talvez seja melhor você postar um exemplo com algumas linhas das 2 tabelas e o respectivo resultado esperado para facilitar o entendimento da questão.
Espero que ajude.
Assinatura: http://www.imoveisemexposicao.com.br
- Sugerido como Resposta Giovani Cr sexta-feira, 1 de novembro de 2013 18:08
- Marcado como Resposta Joaquim Costa (Abraão) terça-feira, 5 de novembro de 2013 00:17
-
na verdade esta query me apresentou o saldo mais alto. o que eu quis é a conta com mais deposito. troquei o order by, mete order by QtdeDepositos e funcionou... obrigado viu
"Abraão" - Apreciador de Programação "Senhor Jesus, ilumine o meu caminho..."