problema com distinct

05/04/2006

0

olá pessoal, estou com um problema para fazer um select.
eu quero fazer um select que o resultado no grid fique dividido em grupo.

eu fiz o seguinte....

select numpedido, representada, 2 as flag
from pedido
union all
select distinct 0, representada, 1 as flag
from pedido
order by representada, flag

funciona beleza do jeito que eu quero, mas o problema é que tenho de colocar mais 3 campos.
Teria que ficar assim...

select numpedido, valortotal, representada, nome, data, 2 as flag
from pedido
union all
select distinct 0, 0 as valortotal , representada, nome, data, 1 as flag
from pedido
order by representada, flag]

isso da erro, mostra duplicidade por causa do nome e data.
como faço para quando o flag for 1 eu mostra zero no campo nome e data.

estou usando o velho Paradox.

obrigado pela atenção.

Adilson


Pecchiai

Pecchiai

Responder

Posts

05/04/2006

Emerson Nascimento

tente:
select
  numpedido, valortotal, representada, nome, data, 2 as flag
from
  pedido 

union all

select
  distinct 0, 0 as valortotal , representada, null nome, null data, 1 as flag 
from
  pedido 
order by
  representada, flag



Responder

06/04/2006

Pecchiai

Oi Emerson.

Já tentei mas esse erro.

(Invalid use of keyword. Token :null line Number: 4.


Responder

06/04/2006

Emerson Nascimento

então tente:
select 
  numpedido, valortotal, representada, nome, data, 2 as flag 
from 
  pedido 

union all 

select 
  distinct 0, 0 as valortotal , representada, ´´ nome, ´´ data, 1 as flag 
from 
  pedido 
order by 
  representada, flag



Responder

06/04/2006

Pecchiai

então tente:
select 
  numpedido, valortotal, representada, nome, data, 2 as flag 
from 
  pedido 

union all 

select 
  distinct 0, 0 as valortotal , representada, ´´ nome, ´´ data, 1 as flag 
from 
  pedido 
order by 
  representada, flag


Emerson, obrigado pela atenção, mas tb da erro de sintax, estou colocando esse codigo dentro do SQL do componente Query.

Adilson


Responder

06/04/2006

Pecchiai

Pessoal resolvi o problema criando uma tabela auxiliar em tempo de execução e no final do processamento eu destruo a tabela.
Mas não estou satisfeito, acho que não é uma boa pratica, porque se tiver muitos registros o processamento pode demorar.
Poriso se alguem tiver uma idéia de como fazer o select para esse caso eu agradeço.

o grid ficou mais ou menos assim

---------------------------------------------------
num | data | nome cliente | valor
--------------------------------------------------
representante comercial XX 30,00 <------- soma da venda desse cliente
--------------------------------------------------
001| 05/04/2006 | cliente X | 10,00
002| 06/04/2005 | cliente Y | 20,00
--------------------------------------------------
representante comercial YY 50,00 <------- soma da venda desse cliente
--------------------------------------------------
003 | 06/04/2005 | cliente A | 50,00
--------------------------------------------------


e assim por diante.


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar