Pergunte aqui
0

Consultas no Base - como agrupar registros?

perguntadas 2016-05-24 19:25:53 +0200

imagem do gravatar de LuizCarlos18RJ

Oi eu tenho uma consulta assim:

Descrição da imagem

gostaria de agrupar registros com o mesmo nome de usuário e SOMANDO as quantidades do mesmo usuário, desse modo a fazer uma consulta "TOP 5" usuários que mais tem pontos, como fazer?

editar alterar tag assinalar como ofensivo fechar mesclar Excluir

Comentários

Uma subconsulta adaptada desta aqui pode resolver seu problema. No entanto, para te ajudar preciso ver a consulta que vc rodou para gerar o resultada da imagem. Atte, Grafeno.

imagem do gravatar de GrafenoGrafeno ( 2016-05-25 01:38:32 +0200 )editar

@LuizCarlos18RJ, mil perdões, ao tentar apagar um comentário meu, acabei deletando a sua resposta. Então, só posso torcer para que o @Olivier possa reverter essa grande lambança que fiz.

imagem do gravatar de GrafenoGrafeno ( 2016-05-26 03:50:49 +0200 )editar

2 Respostas

1

respondidas 2016-05-25 16:12:48 +0200

imagem do gravatar de Grafeno

updated 2016-05-26 03:44:56 +0200



Edição:

Após importar os dados disponibilizados e adaptar a sua consulta, construída no Access, o resultado final foi bem mais prático e coerente que utilizar subconsulta.


A consulta adaptada ficou da seguinte forma:

SELECT TOP 5 "relatorio"."usuario",
       "relatorio"."dept",
       "relatorio"."status",
       SUM("relatorio"."qtd") AS "Soma de qtd"
FROM "relatorio"
GROUP BY "relatorio"."usuario",
         "relatorio"."dept",
         "relatorio"."status"
HAVING "relatorio"."status" <> 'Cancelled'
ORDER BY "Soma de qtd" DESC

Dentro das Consultas do Base é preciso colocar entre aspas os nomes do campos e das tabelas. O predicado "DISTINCTROW" é exclusivo do Access e não equivalente no HSQLDB 1.8. Mas no caso acabou não sendo necessário.

Obs.: Inserir a consulta no Editor de SQL e se certificar de clicar no ícone "Executar o comando SQL diretamente".

Veja o resultado:

Descrição da imagem

Atte,
Grafeno

editar assinalar como ofensivo Excluir Link mais
0

respondidas 2016-05-31 14:43:51 +0200

imagem do gravatar de LuizCarlos18RJ

updated 2016-05-31 19:24:27 +0200

Oi grafeno Obrigado pela ajuda...

Vou repostar aqui a resposta excluída afins de consultas futuras...

No Access ela ficava assim:

Descrição da imagem

em SQL:

SELECT DISTINCTROW TOP 5 relatorio.usuario, relatorio.dept, relatorio.status, Sum(relatorio.qtd) AS [Soma De qtd]
FROM relatorio
GROUP BY relatorio.usuario, relatorio.dept, relatorio.status
HAVING (((relatorio.status)="Completed"))
ORDER BY Sum(relatorio.qtd) DESC;

Oi grafeno, infelizmente aqui não deu certo olha o erro:

Descrição da imagem

Descobri algo: minha tabela "RELATORIO" é um arquivo vinculado do tipo .csv testei que numa tabela não-nativa, as consultas não aceitam FUNÇÕES.

Fiz o teste "importando" os dados para uma tabela HSQLDB nativa e deu certo, o meu problema é que o usuário gera um arquivo do tipo .csv de uma página web e é a partir dele que eu conecto o meu bando de dados, aí neste caso fica a seguinte pergunta:

1 - Tem alguma maneira ou macro de "importar" os dados automaticamente? Pois não queria "vincular" a tabela a partir de um arquivo externo de texto e sim "importá-lo" via macro para criar tabelas nativas de modo que as consultas SQL funcionem a contento.

editar assinalar como ofensivo Excluir Link mais

Comentários

Grafeno, acho que descobri algo: a minha tabela não é nativa, eu "importo" um arquivo de texto .csv, será que tabelas vinculadas o base não consegue aplicar funções? meu caso é parecido com o deste link:

Vincular texto

Tem algum modo de escrever em "HSQLDB" para "copiar" a tabela tipo:

SELECT * INTO newtable FROM oldtable ou CREATE newtable AS (SELECT * FROM oldtable)

pois caso fosse possível criar

imagem do gravatar de LuizCarlos18RJLuizCarlos18RJ ( 2016-05-31 18:50:37 +0200 )editar

@LuizCarlos18RJ, o comando SELECT * INTO "novatabela" FROM "antigatabela" funciona, com os nomes das tabelas entre aspas, na janela Executar instrução SQL... (Ferramentas > SQL...). Porém, acho que não vai resolver porque qdo vc "importa" o arquivo de texto as tabelas ficam no modo leitura.

imagem do gravatar de GrafenoGrafeno ( 2016-06-01 16:22:36 +0200 )editar

Ao pesquisar, encontrei uma forma de usar um arquivo CSV como fonte de dados editável no Base.Dê uma olhada aqui neste link.

imagem do gravatar de GrafenoGrafeno ( 2016-06-01 16:26:08 +0200 )editar
Login/Registrar para responder

Ferramentas de perguntas

1 seguidor

Estatísticas

Perguntadas: 2016-05-24 19:25:53 +0200

Lidas: 513 vezes

Última atualização: May 31 '16