Somente 7 registros

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
marquesjr
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 77
Registrado em: Qua, 05 Dez 2007 10:51 am
Localização: Fortaleza - CE

Pessoal tenho uma consulta que retorna o código do cliente, número da fatura e vencimento. Como alguns cliente possuem 20 ou mais faturas gostaria que a consulta retornasse apenas as 7 faturas primeiras (por ordem de vencimento) por cliente, e se possível adicionar uma coluna numerando as faturas de 1 a 7.

Selecionar tudo

CD_CLIENTE	FATURA	VENCIMENTO
12		1245	10/02/2011
12		1287	10/03/2011
12		8956	10/04/2011
12		1248	10/05/2011
12		1886	10/06/2011
12		9052	10/07/2011
26		7866	15/02/2011
26		2254	15/03/2011
26		4895	15/04/2011
45		9642	25/07/2011
45		1125	25/08/2011
70		8965	17/08/2011

Avatar do usuário
fsitja
Rank: OraSauro
Rank: OraSauro
Mensagens: 611
Registrado em: Seg, 19 Jan 2009 4:29 pm
Localização: Gaúcho no Rio de Janeiro - RJ
"The scars exist to remind us that the past was real"
Campanha: Como fazer uma pergunta e obter uma resposta.
http://tkyte.blogspot.com/2005/06/how-t ... tions.html

OCA & OCP Developer — OCE SQL Expert — OCS Data Warehousing Specialist

Acho que assim (não testei):

Selecionar tudo

select *
  from (select row_number() over (partition by cd_cliente order by vencimento) rn,
               cd_cliente,
               fatura,
               vencimento
          from minha_tabela)
 where rn <= 7
 order by cd_cliente, vencimento;
marquesjr
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 77
Registrado em: Qua, 05 Dez 2007 10:51 am
Localização: Fortaleza - CE

Opa fsitja, só deu para testar agora. É isso mesmo, valeu.
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 13 visitantes