Estranho, eu tenho vários selects que tem mais de 2 unions. 
Lembrando que as colunas de TODOS os selects devem ter o mesmo nome. Me parece 
que o seu select há difença já do primeiro para o segundo. Quando você usar uma 
função, exemplo left(), lembre-se de renomear a columa para um nome igual ao do 
primeiro select, neste caso "Conta".

 Luciano Calenzani Simões





----- Mensagem original ----
De: Ioney Hotmail <[EMAIL PROTECTED]>
Para: delphi-br@yahoogrupos.com.br
Enviadas: Sexta-feira, 13 de Junho de 2008 10:32:31
Assunto: [delphi-br] delphiXunion


existe alguma outra maneira de unir 2 dois selects sem usar o UNION, pois o 
delphi nao aceita a uniao com mais de 2 dois selects
ex:

select conta, DESCRICAO ,
sum(case when valor > 0 and cd = 'D' then 0 else 0 end) valoranterior,
sum(case when valor > 0 and cd = 'D' then 0 else valor end) valordeb,
sum(case when valor > 0 and cd = 'C' then 0 else valor end) valorCred,
sum((case when valor > 0 and cd = 'D' then 0 else valor end) - (case when valor 
> 0 and cd = 'C' then 0 else valor end)) valoratual
from lancamentos l, planocontas p
where l.codred = p.codred
and cliente = '2'
group by CONTA, DESCRICAO, GR
union
select left(conta,8) , null, '4',
sum(case when valor > 0 and cd = 'D' then 0 else 0 end) valoranterior,
sum(case when valor > 0 and cd = 'D'  then 0 else valor end) valordeb,
sum(case when valor > 0 and cd = 'C' then 0 else valor end) valorCred,
sum((case when valor > 0 and cd = 'D' then 0 else valor end) - (case when valor 
> 0 and cd = 'C' then 0 else valor end)) valoratual
from lancamentos l, planocontas p
where l.codred = p.codred
and cliente = '2'
group by left(conta,8) , null, '4'
union
select left(conta,5) , null, '3',
sum(case when valor > 0 and cd = 'D' then 0 else 0 end) valoranterior,
sum(case when valor > 0 and cd = 'D'  then 0 else valor end) valordeb,
sum(case when valor > 0 and cd = 'C' then 0 else valor end) valorCred,
sum((case when valor > 0 and cd = 'D' then 0 else valor end) - (case when valor 
> 0 and cd = 'C' then 0 else valor end)) valoratual
from lancamentos l, planocontas p
where l.codred = p.codred
and cliente = '2'
group by left(conta,5) , null, '3'
union
select left(conta,2) , null, '2',
sum(case when valor > 0 and cd = 'D' then 0 else 0 end) valoranterior,
sum(case when valor > 0 and cd = 'D'  then 0 else valor end) valordeb,
sum(case when valor > 0 and cd = 'C' then 0 else valor end) valorCred,
sum((case when valor > 0 and cd = 'D' then 0 else valor end) - (case when valor 
> 0 and cd = 'C' then 0 else valor end)) valoratual
from lancamentos l, planocontas p
where l.codred = p.codred
and cliente = '2'
group by left(conta,2) , null, '2'
union
select left(conta,1) , null, '1',
sum(case when valor > 0 and cd = 'D' then 0 else 0 end) valoranterior,
sum(case when valor > 0 and cd = 'D'  then 0 else valor end) valordeb,
sum(case when valor > 0 and cd = 'C' then 0 else valor end) valorCred,
sum((case when valor > 0 and cd = 'D' then 0 else valor end) - (case when valor 
> 0 and cd = 'C' then 0 else valor end)) valoratual
from lancamentos l, planocontas p
where l.codred = p.codred
and cliente = '2'
group by left(conta,1) , null, '1'

O DELPHI NAO ACEITA A UNIAO COM MAIS DE 2 DOIS SELECTS....



      Abra sua conta no Yahoo! Mail, o único sem limite de espaço para 
armazenamento!
http://br.mail.yahoo.com/

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

Responder a