Re: [delphi-br] SQL com Union - Ordem Inversa não Fu nciona

2008-11-12 Por tôpico valdir
O banco é Firebird 2.0.
Sim, o dado da coluna já é float. É que utilizo o cast por causa de um bug do 
Fortes Report que, na banda summary não imprime se não fizer isso. Mas, mesmo 
que tirasse o cast, não mudaria nada.

Obrigado.

  - Original Message - 
  From: Luciano Calenzani Simões 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Wednesday, November 12, 2008 5:30 PM
  Subject: Res: [delphi-br] SQL com Union - Ordem Inversa não Funciona


  Qual SGDB você está usando? 
  Acabei de testar com Sybase e funciona certinho.
  Outra coisa, por que você faz aquele CAST pra Float se a coluna já me parece 
ser Float por ter usando o SUM?

  Luciano Calenzani Simões

  Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua cara 
@ymail.com ou @rocketmail.com.
  http://br.new.mail.yahoo.com/addresses

  [As partes desta mensagem que não continham texto foram removidas]



   


--



  No virus found in this incoming message.
  Checked by AVG - http://www.avg.com 
  Version: 8.0.175 / Virus Database: 270.9.2/1782 - Release Date: 11/11/2008 
19:32


[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] SQL com Union - Ordem Inversa não Fu nciona

2008-11-12 Por tôpico omar l m rosa
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]