Fórum Erro no select com FB que não acontecia no IB #56391
29/06/2006
0
estou com um probleminha aqui, tenho um select com a cláusula UNION que funciona perfeitamente com o IB6, porém ao instalar o FB 1.5.2 parou de funcionar e apresenta a msg de erro de ´coluna desconhecida´.
a questão é que o WHERE do segundo SELECT (após a cláusula UNION) faz referência a uma coluna do primeiro SELECT, é aí que aparece o erro.
e isso não acontecia com o IB6, alguém imagina o que está acontecendo ?
[]´s
AASN
Aasn
Curtir tópico
+ 0Posts
29/06/2006
Joaoshi
Ex.: SELECT CLIENTE.CODIGO,CLIENTE.ENDERECO FROM CLIENTE
E se não for nada disto me desculpe.
Gostei + 0
29/06/2006
Sremulador
Gostei + 0
30/06/2006
Weber
No IB6 é possivel usar uma clausula Where sem identificar de qualquer tabela se refere o campo, isto pode ocasionar erros.
No FB você é obrigado a informar qual tabela se refere o campo isto faz com que seu select seja muito mais confiável.
Gostei + 0
01/07/2006
Aasn
O campo referenciado no WHERE está identificado não com o nome da tabela mas com o alias correspondente!
select a.*, b.operacao, b.chegada, b.atendimento, b.ok, b.categoria, b.servico, b.obs, b.encaixe, b.flag, c.nome, c.codigo, c.nascimento, c.ultima_consulta, d.nome as nome_convenio from agenda_dia(:medico,:data,:dia) a left join agendas b on (b.medico = :medico) and (b.data = :data) and (b.hora = a.hora) left join pacientes c on (c.codigo=b.paciente) left join convenios d on (d.codigo=b.categoria) union select e.data, e.hora, e.operacao, e.chegada, e.atendimento, e.ok, e.categoria, e.servico, e.obs, e.encaixe, e.flag, c.nome, c.codigo, c.nascimento, c.ultima_consulta, d.nome as nome_convenio from agendas e left join pacientes c on (c.codigo=e.paciente) left join convenios d on (d.codigo=e.categoria) where (e.medico = :medico) and (e.data = :data) and (e.hora <> a.hora) order by 2
[]´s
AASN
Gostei + 0
03/07/2006
Weber
Gostei + 0
04/07/2006
Aasn
O erro não está no ´select a.* ...´ até pq são só dois campos... é uma falha nno FB mesmo, até pq na cláusula where faço referência ao campo através do alias ´where e.hora <> a.hora´.
[]´s
AASN
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)