a sintaxe correta seria algo como:
select status, data, count(*) qtd, sum(total) total
from
(
select status, data, 1 qtd, total from pedidos
where status = 1
union all
select status, data, 1 qtd, total from pedidos
where status = 3
)
group by 1,2
order by 4 desc
---
º.·´¯`·. º.·´¯`·. º.·´¯`·.
Omar L. M. Rosa
º.·´¯`·. º.·´¯`·. º.·´¯`·.
[EMAIL PROTECTED]
- Original Message -
From: valdirdill
To: delphi-br@yahoogrupos.com.br
Sent: Wednesday, November 12, 2008 4:33 PM
Subject: [delphi-br] SQL com Union - Ordem Inversa não Funciona
Quero fazer uma consulta que apresente os maiores compradores. A SQL
abaixo funciona certinho. Porém, quero que seja listado na ordem
inversa, iniciando do maior TOTAL_VENDIDO e terminado no menor. Ao
listar normal (iniciando no menor, funciona direitinho), mas se eu
acrescentar um 'DESC' no ORDER BY, não faz efeito.
Por gentileza, analise o SQL e me ajude com alguma dica.
SELECT CLIENTES.CODIGO, CLIENTES.NOME AS NOME_CLIENTE,
CAST(SUM(VENDAMESTRE.TOTALVENDA) AS FLOAT) AS TOTAL_VENDIDO FROM
VENDAMESTRE INNER JOIN CLIENTES ON
(VENDAMESTRE.CLIENTE=CLIENTES.CODIGO)
GROUP BY 1, 2
UNION ALL
SELECT CLIENTES.CODIGO, CLIENTES.NOME AS NOME_CLIENTE,
CAST(SUM(SERVICOMESTRE.TOTALFINAL) AS FLOAT) AS TOTAL_VENDIDO FROM
SERVICOMESTRE INNER JOIN CLIENTES ON
(SERVICOMESTRE.CLIENTE=CLIENTES.CODIGO)
GROUP BY 1, 2
ORDER BY 3 //tanto faz qual dessas duas linhas eu
ORDER BY 3 DESC //colocar no SQL. Ambas darão a mesma ordem.
Tá tudo certinho, o único problema é que, estranhamente o DESC não
faz efeito no order By.
Obrigado.
[As partes desta mensagem que não continham texto foram removidas]