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]