Hola.
Necesito ayuda para sacar adelante este Sql.
Tengo el siguiente Sql que me retorna la suma de los tiempos de los
distintos procesos antes de una determinada OP. regidos por la columna
OPProceso.iOrden
Select A.iIdProceso, A.iIdMaqPro, Sum(A.iTime) As iTime, D.iOrden
From OPProceso A Inner Join
(Select OPProceso.iIdProceso, OPProceso.iIdMaqPro, OPProceso.iOrden
From OPProceso
Where OPProceso.iIdOPC = 107
And OPProceso.iEstado < 2
) As B
ON A.iIdProceso = B.iIdProceso And A.iIdMaqPro = B.iIdMaqPro
Inner Join OPC C On A.iIdOPC = C.iOPCId And C.cEstado = 'P'
Inner Join Proceso D On A.iIdProceso = D.iProcesoId
Where A.iOrden < B.iOrden
And A.iEstado < 2
Group By A.iIdProceso, A.iIdMaqPro, D.iOrden
Order By D.iOrden
Ahora necesito obtener la suma de los tiempos de todos los procesos de las
distintas OPs que tengan en OPC.cEstado = 'P'
Se me ocurrio:
Select A.iIdProceso, A.iIdMaqPro, Sum(A.iTime) As iTime, D.iOrden, A.iIdOPC
From OPProceso A Inner Join
(Select OPProceso.iIdProceso, OPProceso.iIdMaqPro, OPProceso.iOrden,
OPProceso.iIdOPC
From OPProceso
Where OPProceso.iEstado < 2
) As B
ON A.iIdProceso = B.iIdProceso And A.iIdMaqPro = B.iIdMaqPro And
A.iIdOPC = B.iIdOPC
Inner Join OPC C On A.iIdOPC = C.iOPCId And C.cEstado = 'P'
Inner Join Proceso D On A.iIdProceso = D.iProcesoId
Where A.iOrden < B.iOrden
And A.iEstado < 2
Group By A.iIdProceso, A.iIdMaqPro, D.iOrden, A.iIdOPC
Order By D.iOrden
El problema esta en esta linea
Where A.iOrden < B.iOrden , no se com indicarle que tome el orden que le
corresponde segun la iIdProceso, .iIdMaqPro y iIdOPC
Encuanto a indices todo correcto, todos los campos que comienzan con I son
enteros que admiten valores >= 0
Trabajo con Sql Server 2000. SP3
Saludos.
Mauricio Pulla.
Cuenca-Ecuador
Leer las respuestas