Error en una consulta

dtino1
20 de Noviembre del 2005
Uso firebird 1.5 y a la hora de hacer una consulta no me permite ordenarla y la verdad esd que no entiendo porque.La consulta es la siguiente:



if($idPerfil!=NULL){
$aux=" WHERE upper(c.nombre) LIKE UPPER('";
if($empieza=='empieza')
$aux.="$pista%') ";
else
$aux.="%$pista%') ";
if($idPerfilAdmin==$idPerfil){
$strSQL="select c.nombre as nc, t.nombre as np, telefono, orden, c.idcontacto as ic, t.idtelefono as it
FROM tb_contactos c
join tb_asignacioncontactostelefonos act on (c.idcontacto = act.idcontacto)
join asignacionperfilescontactos apc on (apc.idperfil='$idPerfilAdmin' and apc.idcontacto=c.idcontacto)
join tb_telefonos t on (c.borrado = 0 and (act.activa = 1 or act.activa is null) and (act.idtelefono = t.idtelefono)
and (t.borrado = 0 or t.borrado is null)) ".$aux." ORDER by c.nombre, orden";
}
else{
$strSQL="select distinct c.nombre as nc, t.nombre as np, telefono, orden, c.idcontacto as ic, t.idtelefono as it
FROM tb_contactos c
join tb_asignacioncontactostelefonos act on (c.idcontacto = act.idcontacto)
join asignacionperfilescontactos apc on (apc.idperfil='$idPerfilAdmin' and apc.idcontacto=c.idcontacto)
join tb_telefonos t on (c.borrado = 0 and (act.activa = 1 or act.activa is null) and (act.idtelefono = t.idtelefono)
and (t.borrado = 0 or t.borrado is null)) ".$aux."
UNION
select distinct c.nombre as nc, t.nombre as np, telefono, orden, c.idcontacto as ic, t.idtelefono as it
FROM tb_contactos c
join tb_asignacioncontactostelefonos act on (c.idcontacto = act.idcontacto)
join asignacionperfilescontactos apc on (apc.idperfil='$idPerfil' and apc.idcontacto=c.idcontacto)
join tb_telefonos t on (c.borrado = 0 and (act.activa = 1 or act.activa is null) and (act.idtelefono = t.idtelefono)
and (t.borrado = 0 or t.borrado is null)) ".$aux." ORDER by c.nombre, apc.idperfil, orden";
}
}



El error que me devuelve es : "Error ejecutando sentencia SQL en la base de datosDynamic SQL Error SQL error code = -104 Invalid command invalid ORDER BY clause". El error viene de la sentencia order by que hago en la consulta que utiliza el UNION. Si alguien sabe a que se debe o porque no puedo ordenar, me ayudaria mucho.La cuestion es que necesito ordenar esa consulta de esa manera y no entiendo porque no puedo hacerlo.Gracias y un saludo a todos

mandm (Loop)
20 de Noviembre del 2005
Según logro ver, el problema no está en el ORDER BY sino antes de él, justo en la variable $aux, te sugiero que uses comillas invertidas para encapsular esta variable en la consulta,

and (t.borrado = 0 or t.borrado is null)) `".$aux."` ORDER BY ect.......

Si el problema persiste te sugiero que verifiques el contenido de la variable $aux, ya que gracias a 'no sé quién' los errores de bases de datos SSQL,MYSQL son mostrados erróneamente, ( no es el código que muestra el que está mal sino antes)

Saludos ... !