Programación General > Visual Basic 6.0 e inferiores

 Re: ¿Cómo ordenar por el primer campo de esta SELECT?

(1/1)

JOSE ANTONIO:
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:

ROBER.29:
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

JOSE ANTONIO:
Sí, me produce el error 3020 en tiempo de ejecución, "Update or CancelUpdate without AddNew or Edit".

ROBER.29:
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

Navegación

[0] Índice de Mensajes

Ir a la versión completa