SoloCodigo

Programación General => Visual Basic 6.0 e inferiores => Mensaje iniciado por: JOSE ANTONIO en Jueves 15 de Mayo de 2003, 13:05

Título: Re: ¿Cómo ordenar por el primer campo de esta SELECT?
Publicado por: JOSE ANTONIO en Jueves 15 de Mayo de 2003, 13:05
Muy buenos días.
Después de darle algunas vueltas y trabajar el problema de ordenación, tengo otra select que me ordena perfectamente bien por todos los campos, excepto uno... ¿cómo podría cambiar la select para que me ordenara por todos los campos?

Esta es la Select, el primer campo es una subselect que devuelve un único campo, y el resto es un left join de 2 tablas.

SELECT (SELECT certificados.codcertifica
from certificados
where certificados.Numwo=wo.numwo
and certificados.lineawo=wo_lineas.lineawo)
as Certificado
,WO.NumWO as NumWO,
WO.CodCli as Cliente,
WO.CodSeccion as Seccion,
WO_Lineas.*
from WO_LINEAS LEFT JOIN WO
ON WO.NumWO=WO_Lineas.NumWO

Al añadir la cláusula ORDER BY me ordena por cualquier campo, excepto por "Certificado" (la primera subselect). Es subselect devuelve uno y sólo un registro. He probado haciendo "order by " por el alias y por el campo, pero ambas opciones me fallan, ¿cómo lo podría resolver? ¿Cómo podría modificar la select para ordenar?


:ouch:
Título: Re: ¿Cómo ordenar por el primer campo de esta SELECT?
Publicado por: ROBER.29 en Jueves 15 de Mayo de 2003, 16:50
Has probado lo siguiente:

SELECT (SELECT certificados.codcertifica
from certificados
where certificados.Numwo=wo.numwo
and certificados.lineawo=wo_lineas.lineawo)
as Certificado
,WO.NumWO as NumWO,
WO.CodCli as Cliente,
WO.CodSeccion as Seccion,
WO_Lineas.*
from WO_LINEAS LEFT JOIN WO
ON WO.NumWO=WO_Lineas.NumWO
ORDER BY 1
Título: Re: ¿Cómo ordenar por el primer campo de esta SELECT?
Publicado por: JOSE ANTONIO en Jueves 15 de Mayo de 2003, 17:02
Sí, me produce el error 3020 en tiempo de ejecución, "Update or CancelUpdate without AddNew or Edit".
Título: ¿Cómo ordenar por el primer campo de esta SELECT?
Publicado por: ROBER.29 en Jueves 15 de Mayo de 2003, 18:33
Prueba la siguiente consulta:

SELECT (SELECT certificados.codcertifica
from certificados
where certificados.Numwo=wo.numwo
and certificados.lineawo=wo_lineas.lineawo)
as Certificado
,WO.NumWO as NumWO,
WO.CodCli as Cliente,
WO.CodSeccion as Seccion,
WO_Lineas.*
From WO_LINEAS, WO
WHERE WO.NumWO =* WO_Lineas.NumWO
ORDER BY 1

Ya me contaras si te funciona o que error te da.

Saludos,
Roberto García