
Sql procedimiento Error
Publicado por Joshua (4 intervenciones) el 25/01/2007 21:05:15
Hola, estoy tratando de crear un procedimiento que me tome los datos de una tabla y los coloque en otra, las dos tablas son detalles de una factura pero una de ellas no tiene el campo item, asi que me toca guiarme por el numero de documento. El problema esta con el procedimiento, lo llevo asi:
CREATE PROCEDURE factura_detalle_data
AS
BEGIN
SET NOCOUNT ON;
DECLARE @tipo_documento VARCHAR
DECLARE @documento NUMERIC
DECLARE @item NUMERIC
DECLARE @especialista VARCHAR
DECLARE @detalle VARCHAR
DECLARE @actividad NUMERIC
DECLARE @cantidad NUMERIC
DECLARE @descuento NUMERIC
DECLARE @valor NUMERIC
DECLARE @doc_anterior NUMERIC
DECLARE @cont_item NUMERIC
DECLARE facturas CURSOR FOR SELECT Nro_Factura, Cod_Actividad, Ced_Especialista, Cantidad, Porc_Descuento, Subtotal FROM Detalle_Factura ORDER BY Nro_Factura ASC
SET @doc_anterior = 0
SET @cont_item = 1
OPEN facturas
WHILE(1=1)
BEGIN
FETCH NEXT FROM facturas INTO @documento, @actividad, @especialista, @cantidad, @descuento, @valor
IF (@@FETCH_STATUS = -1)
BREAK
IF @doc_anterior = @documento
BEGIN
INSERT INTO FTC_FACTURA_DETALLE (TIPO_DOCUMENTO, DOCUMENTO, ITEM, ESPECIALISTA, DETALLE, ACTIVIDAD, CANTIDAD, DESCUENTO, VALOR) VALUES ('FD', @documento, @cont_item, @especialista, ' ', @actividad, @cantidad, @descuento, @valor)
SET @cont_item = @cont_item + 1 *(Aqui el primer error)
END
IF @doc_anterior <> @documento
BEGIN
@cont_item = 1
INSERT INTO FTC_FACTURA_DETALLE (TIPO_DOCUMENTO, DOCUMENTO, ITEM, ESPECIALISTA, DETALLE, ACTIVIDAD, CANTIDAD, DESCUENTO, VALOR) VALUES ('FD', @documento, @cont_item, @especialista, ' ', @actividad, @cantidad, @descuento, @valor)
END
SET @doc_anterior = @documento *(Aqui el segundo)
END
CLOSE facturas
DEALLOCATE facturas
END
y los errores que me arrojan son
Msg 102, Level 15, State 1, Procedure factura_detalle_data, Line 58
Incorrect syntax near '@cont_item'.
Msg 102, Level 15, State 1, Procedure factura_detalle_data, Line 65
Incorrect syntax near 'END'.
en las lineas en donde tengo el asteristo para que se ubiquen.
Gracias de antemano por la posible ayuda
CREATE PROCEDURE factura_detalle_data
AS
BEGIN
SET NOCOUNT ON;
DECLARE @tipo_documento VARCHAR
DECLARE @documento NUMERIC
DECLARE @item NUMERIC
DECLARE @especialista VARCHAR
DECLARE @detalle VARCHAR
DECLARE @actividad NUMERIC
DECLARE @cantidad NUMERIC
DECLARE @descuento NUMERIC
DECLARE @valor NUMERIC
DECLARE @doc_anterior NUMERIC
DECLARE @cont_item NUMERIC
DECLARE facturas CURSOR FOR SELECT Nro_Factura, Cod_Actividad, Ced_Especialista, Cantidad, Porc_Descuento, Subtotal FROM Detalle_Factura ORDER BY Nro_Factura ASC
SET @doc_anterior = 0
SET @cont_item = 1
OPEN facturas
WHILE(1=1)
BEGIN
FETCH NEXT FROM facturas INTO @documento, @actividad, @especialista, @cantidad, @descuento, @valor
IF (@@FETCH_STATUS = -1)
BREAK
IF @doc_anterior = @documento
BEGIN
INSERT INTO FTC_FACTURA_DETALLE (TIPO_DOCUMENTO, DOCUMENTO, ITEM, ESPECIALISTA, DETALLE, ACTIVIDAD, CANTIDAD, DESCUENTO, VALOR) VALUES ('FD', @documento, @cont_item, @especialista, ' ', @actividad, @cantidad, @descuento, @valor)
SET @cont_item = @cont_item + 1 *(Aqui el primer error)
END
IF @doc_anterior <> @documento
BEGIN
@cont_item = 1
INSERT INTO FTC_FACTURA_DETALLE (TIPO_DOCUMENTO, DOCUMENTO, ITEM, ESPECIALISTA, DETALLE, ACTIVIDAD, CANTIDAD, DESCUENTO, VALOR) VALUES ('FD', @documento, @cont_item, @especialista, ' ', @actividad, @cantidad, @descuento, @valor)
END
SET @doc_anterior = @documento *(Aqui el segundo)
END
CLOSE facturas
DEALLOCATE facturas
END
y los errores que me arrojan son
Msg 102, Level 15, State 1, Procedure factura_detalle_data, Line 58
Incorrect syntax near '@cont_item'.
Msg 102, Level 15, State 1, Procedure factura_detalle_data, Line 65
Incorrect syntax near 'END'.
en las lineas en donde tengo el asteristo para que se ubiquen.
Gracias de antemano por la posible ayuda
Valora esta pregunta


0