Oi eu tenho uma consulta assim:
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?
Oi eu tenho uma consulta assim:
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?
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.
@LuizCarlos18RJ, mil perdões, ao tentar apagar um comentário meu, acabei deletando a sua resposta. Então, só posso torcer para que o @ohallot possa reverter essa grande lambança que fiz.
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:
Atte,
Grafeno
Oi grafeno Obrigado pela ajuda…
Vou repostar aqui a resposta excluída afins de consultas futuras…
No Access ela ficava assim:
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:
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.
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:
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
@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.
Ao pesquisar, encontrei uma forma de usar um arquivo CSV como fonte de dados editável no Base.Dê uma olhada aqui neste link.