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]

Responder a