Fórum ME AJUDA... URGENTE #408658

20/10/2011

0

Galera, boa noite.. estou com o seguinte problema.

Preciso trazer os 10,20,30 primeiros de um group by... segue abaixo:

select TB_CLI.CODIGO, TB_CLI.RAZAO, sum (TB_CLI.VALOR),
TB_CONTA.DESCRICAO
from TB_CLI
inner join TB_CONTA on (TB_CONTA.CODIGO = TB_CLI.CODIGO_CONTA)
group by 1, 2, 4
order by 3
Mauricio Souza

Mauricio Souza

Responder

Posts

20/10/2011

Mauricio Souza

e aparecer assim para mim

CONTA: Aluguel
000001 | CLIENTE_01 | 10,00
000002 | CLIENTE_02 | 20,30
CONTA: Telefone
000003 | CLIENTE_04 | 1000,00


o que vai depender para mostrar a quantidade de registro é o número que eu digitar 10, 20, 30
e pegar todos os registros que tenho que seria minhas contas...

Alguém poderia me dar uma luz
Responder

Gostei + 0

21/10/2011

Gustavo Bretas

Para trazer N primeiros registos, use SELECT FIRST Nº Colunas FROM ...

Por exemplo:

select first 10 TB_CLI.CODIGO, TB_CLI.RAZAO, sum (TB_CLI.VALOR),
TB_CONTA.DESCRICAO
from TB_CLI
inner join TB_CONTA on (TB_CONTA.CODIGO = TB_CLI.CODIGO_CONTA)
group by 1, 2, 4
order by 3


É isso mesmo que vc precisa?
Responder

Gostei + 0

22/10/2011

Mauricio Souza

Não. já tinha tentado do jeito que você escreveu...
ele só me trazer os 10 primeiros registros... que não está errado. Porém não é isso que eu quero.

Seguinte...
eu tenho uma tabela de contas. (TB_CONTAS)

Código | Descrição
00001 | TELEFONE
00002 | AGUA
00003 | LUZ
00004 | IPTU
00005 | IPVA
00006 | ALUGUEL
00007 | CONDOMINIO
00008 | LIMPEZA
00009 | ALIMENTAÇÃO
00010 | DIVERSOS

essa seria minha tabela de CONTAS. que será linkado com a minha tabela de cliente....

TB_CLIENTE

Código | Razão Social | Cod_Conta
00001 | DELL | 00010
00002 | IBM | 00010
00003 | CARREFOUR | 00010
00004 | EXTRA | 00010
00005 | SUBWAY | 00009
00006 | LANCHAO | 00009
00007 | HOTEL CALIF | 00009
00008 | HOTEL AVENI | 00003
00009 | DROGARIA | 00002
00010 | LANCHONETE | 00001


O que tenho que fazer é o seguinte....
é mostra a quantidade de um ranking (digitado pelo usuário) que no padrão seria 10.
os 10 registro de cada CONTA.
exemplo:

mostrar os 10 registro da conta 00001.
mostrar os 10 registro da conta 00002.
mostrar os 10 registro da conta 00003.

entendeu?

o que eu digitar é o que mostra o first .. se eu digitar 20.
mostrar os 20 registro da conta 00001.

digito 2.. seria o ranking de 2 para cada grupo ficando assim:

Iria mostrar 2 registro de cada CONTA

Código | Razão Social | Cod_Conta
00001 | DELL | 00010
00002 | IBM | 00010
00005 | SUBWAY | 00009
00006 | LANCHAO | 00009
00008 | HOTEL AVENI | 00003
00009 | DROGARIA | 00002
00010 | LANCHONETE | 00001
Responder

Gostei + 0

24/10/2011

Gustavo Bretas

Bom dia Mauricio, tenta fazer +/- como o script abaixo:

select CLI.CODIGO, CLI.RAZAO, sum(CLI.VALOR), TB_CONTA.DESCRICAO
  from TB_CONTA,
       (select first 10 TB_CLI.CODIGO, TB_CLI.RAZAO, TB_CLI.VALOR
          from TB_CLI
         where (TB_CONTA.CODIGO = TB_CLI.CODIGO_CONTA)) CLI
 group by 1, 2, 4
 order by 3


Como não tenho o banco aqui, fica complicado!

Eu não entendi sobre essa soma, vc quer somente o valor dos N registros que o usuário pedir pra mostrar?
Outa coisa tbm, vc quer mostrar N clientes para cada conta, ou N contas pra cada cliente?

Att
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar