Hola a todos,
tengo este procedimiento para actualizar los datos de una tabla en función
del resultado de una consulta, pero algo no he tenido que hacer bien pues no
funciona y no le encuentro la punta.
Muchas gracias de antemano por su ayuda
Alter PROCEDURE spHojaCargaLiquidacionArticulo
@CargaNumero AS Bigint,
@AlbaranEjercicio AS VarChar(4),
@AlbaranCanal AS Smallint,
@AlbaranNumero AS Bigint AS
DECLARE @ArticuloCodigo AS Bigint,
@ArticuloConfirmado AS Smallint,
@ArticuloCantidad AS Smallint
DECLARE CursorArticulos CURSOR FOR
SELECT HojaCargaArticulo.CargaArticulo, HojaCargaArticulo.CargaConfirmado,
SUM(Pedido_Det.PdtCantidad) AS Cantidad
FROM HojaCargaAlbaran INNER JOIN Albaran_Pedido ON
HojaCargaAlbaran.CargaAlbaran = Albaran_Pedido.AlpAlbCodigo
AND HojaCargaAlbaran.CargaAño = Albaran_Pedido.AlpAlbAño
AND HojaCargaAlbaran.CargaCanal = Albaran_Pedido.AlpAlbPcaCanCodigo
INNER JOIN Pedido_Det ON Albaran_Pedido.AlpAlbPcaCanCodigo Pedido_Det.PdtPcaCanCodigo
AND Albaran_Pedido.AlpPcaAño = Pedido_Det.PdtPcaAño
AND Albaran_Pedido.AlpPcaCodigo = Pedido_Det.PdtPcaCodigo
INNER JOIN HojaCargaArticulo ON HojaCargaArticulo.CargaArticulo Pedido_Det.PdtArtCodigo
AND HojaCargaAlbaran.CargaNumero = HojaCargaArticulo.CargaNumero
WHERE HojaCargaAlbaran.CargaNumero = @CargaNumero
AND HojaCargaAlbaran.CargaAño = @AlbaranEjercicio
AND HojaCargaAlbaran.CargaCanal = @AlbaranCanal
AND HojaCargaAlbaran.CargaAlbaran = @AlbaranNumero
GROUP BY HojaCargaArticulo.CargaArticulo, HojaCargaArticulo.CargaConfirmado
OPEN CursorArticulos
FETCH NEXT FROM CursorArticulos
INTO @ArticuloCodigo, @ArticuloConfirmado, @ArticuloCantidad
WHILE @@FETCH_STATUS = 0
BEGIN
/* Actualiza articulos confirmados en hoja de carga */
UPDATE HojaCargaArticulo SET HojaCargaArticulo.CargaConfirmado @ArticuloConfirmado - @ArticuloCantidad
WHERE HojaCargaArticulo.CargaNumero=@CargaNumero
AND HojaCargaArticulo.CargaArticulo = @ArticuloCodigo
END
CLOSE CursorArticulos
DEALLOCATE CursorArticulos
Angel Zapata
"Si no sabes hacia adonde vas, lo mas probable es que no llegues a ninguna
parte"
Leer las respuestas