Con cursores o sin ellos

27/01/2005 - 00:07 por K | Informe spam
Hola grupo quisiera un poquito de ayuda para terminar mi procedimiento

Aqui recupero un indice y agrego los
datos de la vista a mi tabla TemporalKardex...
En la tabla temporalKardex el utlimo campo
tiene el valor de 0 donde deseo generar los saldos
recorriendo las filas, estoy pensando hacerlo con Cursores
aunque leo que es poco recomenado, no se si habria otra
forma, si no es asi igual me falta un poco
de ayuda para la ultima parte donde que creo que
tendria que usar @@FETCH_STATUS ,WHILE y otros ..

Gracias por su ayuda

DECLARE @Indice SMALLINT,@Cantidad INT
-
-

SELECT @IndiceÊSE WHEN MAX(indice)=NULL THEN 1 ELSE MAX(indice) END FROM
TemporalKardex
-
-
INSERT INTO TemporalKardex
SELECT TOP 100 PERCENT @Indice,dbo.MovimientosCompletos.Movimiento as [Nº
Movimiento],
dbo.MovimientosCompletos.TipoMovimiento as [Tipo
Movimiento], dbo.MovimientosCompletos.TipoDocumento + ' ' +
dbo.MovimientosCompletos.NumeroDocumento as Documento,
dbo.MovimientosCompletos.AlmacenOrigen as Origen,
dbo.MovimientosCompletos.AlmacenDestino as Destino,
dbo.MovimientosCompletos.FechaMovimiento as Fecha,
dbo.MovimientosCompletos.[Nº Cotizacion],
dbo.MovimientosCompletos.Cantidad, 0 as Saldo
FROM dbo.MovimientosCompletos
WHERE dbo.MovimientosCompletos.CodigoArticulo = @CodigoArticulo
GROUP BY dbo.MovimientosCompletos.Movimiento,
dbo.MovimientosCompletos.CodigoArticulo,
dbo.MovimientosCompletos.descripcion,
dbo.MovimientosCompletos.TipoMovimiento,
dbo.MovimientosCompletos.TipoDocumento,
dbo.MovimientosCompletos.NumeroDocumento,
dbo.MovimientosCompletos.AlmacenOrigen,
dbo.MovimientosCompletos.AlmacenDestino,
dbo.MovimientosCompletos.FechaMovimiento,
dbo.MovimientosCompletos.Cantidad,dbo.Movimientos.Completos.[Nº
Cotizacion]
ORDER BY
dbo.MovimientosCompletos.FechaMovimiento,dbo.MovimientosCompletos.TipoMovimi
ento,dbo.MovimientosCompletos.Movimiento
 

Leer las respuestas

#1 MAXI
27/01/2005 - 00:18 | Informe spam
hHola, seria bueno que nos envies la estructura de las tablas, pero si esta
bien hecho el diseño no necesitas cursores



Maxi

Buenos Aires - Argentina
Desarrollador .NET 3 Estrellas
Microsoft User Group (MUG)

MSN:
"" escribió en el mensaje
news:ecYXHv$
Hola grupo quisiera un poquito de ayuda para terminar mi procedimiento

Aqui recupero un indice y agrego los
datos de la vista a mi tabla TemporalKardex...
En la tabla temporalKardex el utlimo campo
tiene el valor de 0 donde deseo generar los saldos
recorriendo las filas, estoy pensando hacerlo con Cursores
aunque leo que es poco recomenado, no se si habria otra
forma, si no es asi igual me falta un poco
de ayuda para la ultima parte donde que creo que
tendria que usar @@FETCH_STATUS ,WHILE y otros ..

Gracias por su ayuda

DECLARE @Indice SMALLINT,@Cantidad INT
-
-

SELECT @IndiceÊSE WHEN MAX(indice)=NULL THEN 1 ELSE MAX(indice) END FROM
TemporalKardex
-
-
INSERT INTO TemporalKardex
SELECT TOP 100 PERCENT @Indice,dbo.MovimientosCompletos.Movimiento as [Nº
Movimiento],
dbo.MovimientosCompletos.TipoMovimiento as [Tipo
Movimiento], dbo.MovimientosCompletos.TipoDocumento + ' ' +
dbo.MovimientosCompletos.NumeroDocumento as Documento,
dbo.MovimientosCompletos.AlmacenOrigen as Origen,
dbo.MovimientosCompletos.AlmacenDestino as Destino,
dbo.MovimientosCompletos.FechaMovimiento as Fecha,
dbo.MovimientosCompletos.[Nº Cotizacion],
dbo.MovimientosCompletos.Cantidad, 0 as Saldo
FROM dbo.MovimientosCompletos
WHERE dbo.MovimientosCompletos.CodigoArticulo = @CodigoArticulo
GROUP BY dbo.MovimientosCompletos.Movimiento,
dbo.MovimientosCompletos.CodigoArticulo,
dbo.MovimientosCompletos.descripcion,
dbo.MovimientosCompletos.TipoMovimiento,
dbo.MovimientosCompletos.TipoDocumento,
dbo.MovimientosCompletos.NumeroDocumento,
dbo.MovimientosCompletos.AlmacenOrigen,
dbo.MovimientosCompletos.AlmacenDestino,
dbo.MovimientosCompletos.FechaMovimiento,
dbo.MovimientosCompletos.Cantidad,dbo.Movimientos.Completos.[Nº
Cotizacion]
ORDER BY
dbo.MovimientosCompletos.FechaMovimiento,dbo.MovimientosCompletos.TipoMovimi
ento,dbo.MovimientosCompletos.Movimiento



Preguntas similares