none
FREQUENCIA DE UMA CONTA RRS feed

  • 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..."



    quarta-feira, 30 de outubro de 2013 13:41

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

    quarta-feira, 30 de outubro de 2013 16:44

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

    quarta-feira, 30 de outubro de 2013 13:48
  • a minha questão é sobre o numero de vezes que cada conta fez deposito.

    "Abraão" - Apreciador de Programação "Senhor Jesus, ilumine o meu caminho..."

    quarta-feira, 30 de outubro de 2013 14:17
  • 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

    quarta-feira, 30 de outubro de 2013 16:44
  • 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..."

    terça-feira, 5 de novembro de 2013 00:20