Hola a todos: otra ves sufriendo con consultas
ahora lo que pretendo hacer es un procedimiento almacenado que me permita hacer un Update para agregar acumulados en mi tabla.
este es mi procedimiento almacenado
Código SQL:
Ver originalCREATE PROCEDURE [dbo].[PA_MODIFICAR_CANTIDAD]
@ID_RESUMEN_GENERADOR BIGINT,
@ID_CONCEPTO BIGINT,
@CANTIDAD_ESTIMACION DECIMAL(18,4)
AS
DECLARE @ACUMULADO_ESTIMACION_ATERIOR DECIMAL(18,4),
@ACUMULADO_ESTIMACION DECIMAL(18,4),
@CANTIDAD_FALTANTE DECIMAL(18,4)
BEGIN try
BEGIN tran
SET @ACUMULADO_ESTIMACION =(SELECT a.ID_RESUMEN_GENERADOR, a.CANTIDAD_ESTIMACION, SUM(b.CANTIDAD_ESTIMACION) FROM resumen_generador a CROSS JOIN resumen_generador b WHERE (b.id_resumen_generador <= a.id_resumen_generador AND A.id_concepto=@ID_CONCEPTO )GROUP BY a.id_resumen_generador ,a.cantidad_estimacion ORDER BY a.id_resumen_generador ,a.cantidad_estimacion )
SET @ACUMULADO_ESTIMACION_ATERIOR =(SELECT a.ID_RESUMEN_GENERADOR, a.CANTIDAD_ESTIMACION, SUM(b.CANTIDAD_ESTIMACION) -(MAX(a.CANTIDAD_ESTIMACION) ) FROM resumen_generador a CROSS JOIN resumen_generador b WHERE (b.id_resumen_generador <= a.id_resumen_generador AND A.id_concepto=@ID_CONCEPTO )GROUP BY a.id_resumen_generador ,a.cantidad_estimacion ORDER BY a.id_resumen_generador ,a.cantidad_estimacion )
SET @CANTIDAD_FALTANTE =((SELECT CANTIDAD_PRESUPUESTO FROM ConceptoPresu WHERE id_concepto = @ID_CONCEPTO)-@ACUMULADO_ESTIMACION )
UPDATE resumen_generador SET @CANTIDAD_ESTIMACION=CANTIDAD_ESTIMACION,
@ACUMULADO_ESTIMACION_ATERIOR = CANTIDAD_ACUMULADA_ANTERIOR,
@ACUMULADO_ESTIMACION = CANTIDAD_ACUMULADA_ESTIMACION,
@CANTIDAD_FALTANTE = CANTIDAD_FALTANTE
WHERE id_resumen_generador=@ID_RESUMEN_GENERADOR
COMMIT
END TRY
BEGIN CATCH
ROLLBACK
PRINT error_message()
END CATCH
Pero me manda un error y la verdad no se por qué sea.
La cláusula ORDER BY no es válida en vistas, funciones insertadas, tablas derivadas, subconsultas ni expresiones de tabla común, salvo que se especifique también TOP o FOR XML.
De ante mano muchas gracias