Sumar hasta determinada registro, en la misma tabla.

28/11/2006 - 23:44 por Mauricio Pulla | Informe spam
Hola.
Tengo la siguiente tabla.
Procesos
iMaquina, iOPC, iProceso, iOrden, iEstado, iReady, iTime
1 45 5 10 1
1 80
2 45 6 450 0
0 120
3 45 9 257 0
0 50
1 78 5 11 1
1 98
2 78 6 455 0
0 150
" " "
1 96 5 12 1
1 75
2 96 6 456 0
0 46
3 96 10 571 0
0 101
" " "

En la tabla almaceno los diferentes procesos, sus tiempos y el orden en que
que debe cumplir una determinada OP .
El Campo iOrden es el orden secuencial de el proceso.

Necesito sumar los tiempos que estan antes de determinada iOPC agrupados por
sus distintos Maquina, Procesos respetando el orden.
Ejemplo.
Select iIdMaqPro, iIdProceso, Sum(iTime) from OPProceso Where ?

Resultado.
iMaquina, iProceso, iTime
1 5 178
2 6 270
3 10 0

Como puedo armar un SQL que me genere los resuldatos, que necesito.

Saludos
Mauricio Pulla
Cuenca-Ecuador

Preguntas similare

Leer las respuestas

#1 Maxi
29/11/2006 - 14:03 | Informe spam
Hola, podrias pasar la tablita esta en un .txt ya que el correo la deforma
:S


Salu2

Microsoft MVP SQL Server
Culminis Speaker
INETA Speaker

"Mauricio Pulla" escribió en el mensaje
news:
Hola.
Tengo la siguiente tabla.
Procesos
iMaquina, iOPC, iProceso, iOrden, iEstado, iReady, iTime
1 45 5 10 1
1 80
2 45 6 450 0
0 120
3 45 9 257 0
0 50
1 78 5 11 1
1 98
2 78 6 455 0
0 150
" " "
1 96 5 12 1
1 75
2 96 6 456 0
0 46
3 96 10 571 0
0 101
" " "

En la tabla almaceno los diferentes procesos, sus tiempos y el orden en
que
que debe cumplir una determinada OP .
El Campo iOrden es el orden secuencial de el proceso.

Necesito sumar los tiempos que estan antes de determinada iOPC agrupados
por
sus distintos Maquina, Procesos respetando el orden.
Ejemplo.
Select iIdMaqPro, iIdProceso, Sum(iTime) from OPProceso Where ?

Resultado.
iMaquina, iProceso, iTime
1 5 178
2 6 270
3 10 0

Como puedo armar un SQL que me genere los resuldatos, que necesito.

Saludos
Mauricio Pulla
Cuenca-Ecuador


Respuesta Responder a este mensaje
#2 Mauricio Pulla
01/12/2006 - 15:12 | Informe spam
Hola Alejandro
Gracias por tu tiempo.
Tendre muy encuenta tus recomendaciones.

Una OP puede tener uno o varios procesos, cada proceso tiene un orden
dependiendo de cuando entre a produccion o si el usuario modifica el orden
en que desea que se procesen.

Lo que necesito es obtener la sumatoria de los tiempos de los diferentes
procesos que tenga una OP antes de esta.
Es decir:
Select iProceso, iMaquina, Sum(itime) From OPProceso Where iOP = 79 And
iProceso = 10 And iMaquina = 9 And iOrden < orden que le toco a dicho
proceso para la orden 79 and iEstado < 2

El Siguente Sql me da lo que necesito.

Select A.iIdProceso, A.iIdMaqPro, Sum(A.iTime) As iTime
From OPProceso A Inner Join
(Select OPProceso.iIdProceso, OPProceso.iIdMaqPro, OPProceso.iOrden
From OPProceso
Where OPProceso.iIdOPC = 79
And OPProceso.iEstado < 2) As B
ON A.iIdProceso = B.iIdProceso And A.iIdMaqPro = B.iIdMaqPro
Where A.iOrden < B.iOrden
And A.iEstado < 2
Group By A.iIdProceso, A.iIdMaqPro
Order By A.iIdProceso, A.iIdMaqPro

Que piensa de este Sql.

Tengo Indices por los siguientes campos.
iIdOPC, iIdProceso, iIdMaqPro

iEstado = 0 En espera, 1 en Proceso, 2 terminado

Saludos.
Mauricio Pulla.
Cuenca-Ecuador


"Alejandro Mesa" escribió en el
mensaje news:
Mauricio,

Cuando se postea este tipo de preguntas o problemas, es recomendable


postear
la estructura de la tabla, incluyendo indices y restricciones, data de
ejemplo (respectivas sentencias "insert"), asi como el resultado esperado.


La
ayuda debe ser mutua, no crees?

> Necesito sumar los tiempos que estan antes de determinada iOPC

- Antes del minimo?
- Antes del maximo?
- Numero especifico?

Pudieras expandir un poquito lo que necesitas?

Analizando los resultados esperados, noto que quieres excluir el iOPC = 96
para las maquinas y procesos (1, 45) y (2, 6), pero no entiendo lo que
quieres hacer para las combinaciones (3, 9) y (3, 10). Pudieras explicar


como
lograr el resultado:

> 3 10 0

Ve si este ejemplo te es de ayuda.

use northwind
go

create table #t (
iMaquina int not null,
iOPC int not null,
iProceso int not null,
iOrden int not null,
iEstado int not null,
iReady int not null,
iTime int not null
)
go

insert into #t values(1, 45, 5, 10, 1, 1, 80)
insert into #t values(2, 45, 6, 450, 0, 1, 120)
insert into #t values(3, 45, 9, 257, 0, 0, 50)
insert into #t values(1, 78, 5, 11, 1, 1, 98)
insert into #t values(2, 78, 6, 455, 0, 0, 150)
insert into #t values(1, 96, 5, 12, 1, 1, 75)
insert into #t values(2, 96, 6, 456, 0, 0, 46)
insert into #t values(3, 96, 10, 571, 0, 0, 101)
go

select
t1.iMaquina,
t1.iProceso,
sum(t1.iTime) sum_iTime
from
#t as t1
where
t1.iOrden < (
select max(t2.iOrden)
from #t as t2
where t2.iMaquina = t1.iMaquina and t2.iProceso = t1.iProceso
)
group by
t1.iMaquina,
t1.iProceso
order by
t1.iMaquina,
t1.iProceso
go

drop table #t
go


AMB

"Mauricio Pulla" wrote:

> Hola.
> Tengo la siguiente tabla.
> Procesos
> iMaquina, iOPC, iProceso, iOrden, iEstado, iReady, iTime
> 1 45 5 10 1
> 1 80
> 2 45 6 450 0
> 0 120
> 3 45 9 257 0
> 0 50
> 1 78 5 11 1
> 1 98
> 2 78 6 455 0
> 0 150
> " " "
> 1 96 5 12 1
> 1 75
> 2 96 6 456 0
> 0 46
> 3 96 10 571 0
> 0 101
> " " "
>
> En la tabla almaceno los diferentes procesos, sus tiempos y el orden en


que
> que debe cumplir una determinada OP .
> El Campo iOrden es el orden secuencial de el proceso.
>
> Necesito sumar los tiempos que estan antes de determinada iOPC agrupados


por
> sus distintos Maquina, Procesos respetando el orden.
> Ejemplo.
> Select iIdMaqPro, iIdProceso, Sum(iTime) from OPProceso Where ?
>
> Resultado.
> iMaquina, iProceso, iTime
> 1 5 178
> 2 6 270
> 3 10 0
>
> Como puedo armar un SQL que me genere los resuldatos, que necesito.
>
> Saludos
> Mauricio Pulla
> Cuenca-Ecuador
>
>
>
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida