GARANTIR DESCONTO

Fórum Dúvida c/ order by #263930

03/01/2005

0

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.

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

Gameiro

Responder

Posts

03/01/2005

Paulo_amorim

Olá

Tente agrupar pelo SUM, e não somente pelo campo

order by sum(DETALHE_VENDAS.QTD_PRODUTO)


Espero que ajude
Até+


Responder

Gostei + 0

03/01/2005

Gameiro

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

´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


Responder

Gostei + 0

03/01/2005

Massuda

Falta um espaço depois do WHERE no seu SELECT.


Responder

Gostei + 0

03/01/2005

Everton

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 ´;



Responder

Gostei + 0

03/01/2005

Gameiro

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.


Responder

Gostei + 0

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

Aceitar