Dúvida c/ order by
Uso Delphi 6 Firebird1.5 e DBexpress,
Faço o seguinte select para gerar um relatório de produtos vendidos, agrupados por código e com soma das quantidades.
Agora eu gostaria de ordenar a consulta dos produtos por qtde vendida em ordem decrescente.
O problema e que se eu coloco somente o order by DETALHE_VENDAS.QTD_PRODUTO ele dá erro, ai eu preciso colocar o campo DETALHE_VENDAS.QTD_PRODUTO no group by também, só que quando faço isso ele não agrupa do modo certo. Ele agrupa por qtde e por descricao do produto e eu quero que ele agrupa apenas por descricao.
Até mais, valeu.
Faço o seguinte select para gerar um relatório de produtos vendidos, agrupados por código e com soma das quantidades.
select PRODUTOS.DESCRICAO,sum(DETALHE_VENDAS.QTD_PRODUTO)´+ ´from DETALHE_VENDAS,PRODUTOS,RESUMO_VENDAS where´+ ´ PRODUTOS.COD_BARRAS=DETALHE_VENDAS.COD_PRODUTO and DETALHE_VENDAS.NUM_RESUMO=RESUMO_VENDAS.NUM_RESUMO and cast(RESUMO_VENDAS.DATA_HORA as date)between :data1 and :data2 group by PRODUTOS.DESCRICAO´;
Agora eu gostaria de ordenar a consulta dos produtos por qtde vendida em ordem decrescente.
O problema e que se eu coloco somente o order by DETALHE_VENDAS.QTD_PRODUTO ele dá erro, ai eu preciso colocar o campo DETALHE_VENDAS.QTD_PRODUTO no group by também, só que quando faço isso ele não agrupa do modo certo. Ele agrupa por qtde e por descricao do produto e eu quero que ele agrupa apenas por descricao.
Até mais, valeu.
Gameiro
Curtidas 0
Respostas
Paulo_amorim
03/01/2005
Olá
Tente agrupar pelo SUM, e não somente pelo campo
Espero que ajude
Até+
Tente agrupar pelo SUM, e não somente pelo campo
order by sum(DETALHE_VENDAS.QTD_PRODUTO)
Espero que ajude
Até+
GOSTEI 0
Gameiro
03/01/2005
Paulo Obrigado pela atenção.
Testei como você colocou no IBOCONSOLE e funcionou,
mas quando passo para o delphi da erro:
Token unknown - line 1 char 114
A minha select ficou assim
Já procurei e não acho o erro, se eu retiro a parte nova da select funciona.
Muito obrigado
Testei como você colocou no IBOCONSOLE e funcionou,
mas quando passo para o delphi da erro:
Token unknown - line 1 char 114
A minha select ficou assim
´select PRODUTOS.DESCRICAO,sum(DETALHE_VENDAS.QTD_PRODUTO)´+ ´from DETALHE_VENDAS,PRODUTOS,RESUMO_VENDAS where´+ ´PRODUTOS.COD_BARRAS=DETALHE_VENDAS.COD_PRODUTO and DETALHE_VENDAS.NUM_RESUMO=RESUMO_VENDAS.NUM_RESUMO and cast(RESUMO_VENDAS.DATA_HORA as date)between :data1 and :data2 group by PRODUTOS.DESCRICAO order by sum(DETALHE_VENDAS.QTD_PRODUTO) desc´;
Já procurei e não acho o erro, se eu retiro a parte nova da select funciona.
Muito obrigado
GOSTEI 0
Massuda
03/01/2005
Falta um espaço depois do WHERE no seu SELECT.
GOSTEI 0
Everton
03/01/2005
Colega, tente o código abaixo:
´select PRODUTOS.DESCRICAO,sum DETALHE_VENDAS.QTD_PRODUTO) ´+ ´from DETALHE_VENDAS,PRODUTOS,RESUMO_VENDAS ´+ ´where PRODUTOS.COD_BARRAS=DETALHE_VENDAS.COD_PRODUTO ´+ ´ and DETALHE_VENDAS.NUM_RESUMO=RESUMO_VENDAS.NUM_RESUMO´+ ´ and cast(RESUMO_VENDAS.DATA_HORA as date) between :data1 and :data2 ´+ ´group by PRODUTOS.DESCRICAO ´+ ´order by 2 desc ´;
GOSTEI 0
Gameiro
03/01/2005
Valeu pessoal o problema estava no espaço depois do where como ele estava em outra linha não tinha percebido.
Muito Obrigado.
PS.: Não recebi a notificação que o tópico havia sido respondido.
Muito Obrigado.
PS.: Não recebi a notificação que o tópico havia sido respondido.
GOSTEI 0