GARANTIR DESCONTO

Fórum ORDER BY pelo indice em campo qu e utiliza SUM #59507

01/03/2008

0

[quote:3a928b803c=´Moderação´][color=red:3a928b803c]Título editado por Massuda

Por favor, não use apenas letras maiúsculas no título/texto.

No caso de reincidência, seus tópicos poderão vir a ser bloqueados.

Leia as :arrow: [url=http://forum.clubedelphi.net/viewtopic.php?t=6689]Regras de Conduta[/url] do fórum.[/color:3a928b803c][/quote:3a928b803c]Bom dia a todos, possuo um relatorio com o seguintes campos: IDPRODUTO, DESCRICAO, uma SOMADEQTD e PRECO. Ele esta funcionando legal so que preciso ordenar pelo indice do maior para o menor do campo SOMAQTD. Estou usando o seguinte SQL no Delphi:

SELECT ITENSVENDA.IDPRODUTO, PRODUTOS.DESCRICAO, PRODUTOS.PRECOVENDA, Sum(ITENSVENDA.QTD) AS SomaDeQTD
FROM VENDAS INNER JOIN (PRODUTOS INNER JOIN ITENSVENDA ON PRODUTOS.IDPRODUTO = ITENSVENDA.IDPRODUTO) ON VENDAS.NRVENDA = ITENSVENDA.NRVENDA WHERE (CAST(VENDAS.DATA AS DATE)) >=:DATAINICIAL AND (CAST(VENDAS.DATA AS DATE)) <=:DATAFINAL
GROUP BY ITENSVENDA.IDPRODUTO, PRODUTOS.DESCRICAO, PRODUTOS.PRECOVENDA ORDER BY 4, PRODUTOS.DESCRICAO DESC

ai fica do menor para o maior, em compensacao o mesmo codigo funciona direto no interbase/firebird ficando do maior para o menor.

SELECT ITENSVENDA.IDPRODUTO, PRODUTOS.DESCRICAO, PRODUTOS.PRECOVENDA, Sum(ITENSVENDA.QTD) AS SOMADEQTD
FROM VENDAS INNER JOIN (PRODUTOS INNER JOIN ITENSVENDA ON PRODUTOS.IDPRODUTO = ITENSVENDA.IDPRODUTO) ON
VENDAS.NRVENDA = ITENSVENDA.NRVENDA WHERE (CAST(VENDAS.DATA AS DATE)) >=´01/01/2008´ AND (CAST(VENDAS.DATA AS DATE)) <=´01/01/2009´
GROUP BY ITENSVENDA.IDPRODUTO, PRODUTOS.DESCRICAO, PRODUTOS.PRECOVENDA ORDER BY 4 DESC

Só no delphi que nao funciona, será um bug do Delphi, alguem possui outra sugestão de SQL?

Abraço a todos


Frostlost

Frostlost

Responder

Posts

01/03/2008

Sremulador

acho que e assim.

SELECT ITENSVENDA.IDPRODUTO, PRODUTOS.DESCRICAO, PRODUTOS.PRECOVENDA, Sum(ITENSVENDA.QTD) AS SOMADEQTD 
FROM VENDAS INNER JOIN (PRODUTOS INNER JOIN ITENSVENDA ON PRODUTOS.IDPRODUTO = ITENSVENDA.IDPRODUTO) ON 
VENDAS.NRVENDA = ITENSVENDA.NRVENDA WHERE (CAST(VENDAS.DATA AS DATE)) >=´01/01/2008´ AND (CAST(VENDAS.DATA AS DATE)) <=´01/01/2009´ 
GROUP BY ITENSVENDA.IDPRODUTO, PRODUTOS.DESCRICAO, PRODUTOS.PRECOVENDA ORDER BY 3 DESC 



Responder

Gostei + 0

01/03/2008

Frostlost

acho que e assim.
SELECT ITENSVENDA.IDPRODUTO, PRODUTOS.DESCRICAO, PRODUTOS.PRECOVENDA, Sum(ITENSVENDA.QTD) AS SOMADEQTD 
FROM VENDAS INNER JOIN (PRODUTOS INNER JOIN ITENSVENDA ON PRODUTOS.IDPRODUTO = ITENSVENDA.IDPRODUTO) ON 
VENDAS.NRVENDA = ITENSVENDA.NRVENDA WHERE (CAST(VENDAS.DATA AS DATE)) >=´01/01/2008´ AND (CAST(VENDAS.DATA AS DATE)) <=´01/01/2009´ 
GROUP BY ITENSVENDA.IDPRODUTO, PRODUTOS.DESCRICAO, PRODUTOS.PRECOVENDA ORDER BY 3 DESC 



Responder

Gostei + 0

01/03/2008

Frostlost

Não deu certo ainda... mas obrigado!

[color=green:652a802f25]Não poste totalmente em maiúsculas.[/color:652a802f25]


Responder

Gostei + 0

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

Aceitar