Hacer un ciclo....

27/08/2006 - 23:25 por Super | Informe spam
Hola a todos y gracias de antemano.

Tengo una tabla con detalles de una solicitud y necesito despues de mandar a
convertir en oferta, insertar todos los rows que tengo en la tabla detalle
de oferta o detalle de factura, lo unico que se me ocurre es esto.
ALTER PROCEDURE [dbo].[SGI_Convert_Oferta_Factura]
(

@NoSol nvarchar(50)

)

AS

DECLARE

@SolC nvarchar(50),

@Prod int,

@Cant int,

@PVent decimal(19,4),

@I int,

@Iv int


SET @Iv=1

SELECT @I=COUNT(*)

FROM Detalle_Solicitud

SELECT @SolC=NoSolicitud

,@Prod=Id_Producto

,@Cant=Cantidad

,@PVent=PrecioVenta


FROM [SGI].[dbo].[Detalle_Solicitud]

WHERE @NoSol=NoSolicitud

INSERT INTO [SGI].[dbo].[Detalle_Factura]

(No_Factura

,IdProducto

,Cantidad

,PrecioVenta)

VALUES

(@SolC

,@Prod

,@Cant

,@PVent)



Pero por supuesto, solo guarda el valor que encontró de ultimo, que es con
el que se quedó.

pensé hacer un ciclo
For i =1 to @I
.
Next i
pero no se como hacer esto en SQL
podrian darme alguna mano con esto o darme alguna otra idea que sea mejor ?

Muchas gracias

Preguntas similare

Leer las respuestas

#1 Maxi
28/08/2006 - 00:02 | Informe spam
Hola, si nos pasaras las definicion de las tablas y algun ejemplo de lo que
buscas hacer seria fantastico. De todas maneras, has probado con hacer un
trigger?



Salu2

Microsoft MVP SQL Server
Culminis Speaker
INETA Speaker
www.sqlgururs.org
Email:


"Super" wrote in message
news:
Hola a todos y gracias de antemano.

Tengo una tabla con detalles de una solicitud y necesito despues de mandar
a convertir en oferta, insertar todos los rows que tengo en la tabla
detalle de oferta o detalle de factura, lo unico que se me ocurre es esto.
ALTER PROCEDURE [dbo].[SGI_Convert_Oferta_Factura]
(

@NoSol nvarchar(50)

)

AS

DECLARE

@SolC nvarchar(50),

@Prod int,

@Cant int,

@PVent decimal(19,4),

@I int,

@Iv int


SET @Iv=1

SELECT @I=COUNT(*)

FROM Detalle_Solicitud

SELECT @SolC=NoSolicitud

,@Prod=Id_Producto

,@Cant=Cantidad

,@PVent=PrecioVenta


FROM [SGI].[dbo].[Detalle_Solicitud]

WHERE @NoSol=NoSolicitud

INSERT INTO [SGI].[dbo].[Detalle_Factura]

(No_Factura

,IdProducto

,Cantidad

,PrecioVenta)

VALUES

(@SolC

,@Prod

,@Cant

,@PVent)



Pero por supuesto, solo guarda el valor que encontró de ultimo, que es con
el que se quedó.

pensé hacer un ciclo
For i =1 to @I
.
Next i
pero no se como hacer esto en SQL
podrian darme alguna mano con esto o darme alguna otra idea que sea mejor
?

Muchas gracias


Respuesta Responder a este mensaje
#2 Super
28/08/2006 - 00:18 | Informe spam
Nunca he hecho un Trigger
Gracias

"Maxi" escribió en el mensaje
news:%
Hola, si nos pasaras las definicion de las tablas y algun ejemplo de lo
que buscas hacer seria fantastico. De todas maneras, has probado con hacer
un trigger?



Salu2

Microsoft MVP SQL Server
Culminis Speaker
INETA Speaker
www.sqlgururs.org
Email:


"Super" wrote in message
news:
Hola a todos y gracias de antemano.

Tengo una tabla con detalles de una solicitud y necesito despues de
mandar a convertir en oferta, insertar todos los rows que tengo en la
tabla detalle de oferta o detalle de factura, lo unico que se me ocurre
es esto.
ALTER PROCEDURE [dbo].[SGI_Convert_Oferta_Factura]
(

@NoSol nvarchar(50)

)

AS

DECLARE

@SolC nvarchar(50),

@Prod int,

@Cant int,

@PVent decimal(19,4),

@I int,

@Iv int


SET @Iv=1

SELECT @I=COUNT(*)

FROM Detalle_Solicitud

SELECT @SolC=NoSolicitud

,@Prod=Id_Producto

,@Cant=Cantidad

,@PVent=PrecioVenta


FROM [SGI].[dbo].[Detalle_Solicitud]

WHERE @NoSol=NoSolicitud

INSERT INTO [SGI].[dbo].[Detalle_Factura]

(No_Factura

,IdProducto

,Cantidad

,PrecioVenta)

VALUES

(@SolC

,@Prod

,@Cant

,@PVent)



Pero por supuesto, solo guarda el valor que encontró de ultimo, que es
con el que se quedó.

pensé hacer un ciclo
For i =1 to @I
.
Next i
pero no se como hacer esto en SQL
podrian darme alguna mano con esto o darme alguna otra idea que sea mejor
?

Muchas gracias






Respuesta Responder a este mensaje
#3 Maxi
28/08/2006 - 00:25 | Informe spam
Hola, entonces revisa el comando crete trigger en tus libros on line

un ejemplo seria:

CREATE TRIGGER TR1 ON TABLA FOR INSERT AS
INSERT INTO TABLA2 (CAMPO1,CAMPO2)
SELECT CAMPO1,CAMPO2 FROM INSERTED




Salu2

Microsoft MVP SQL Server
Culminis Speaker
INETA Speaker
www.sqlgururs.org
Email:


"Super" wrote in message
news:
Nunca he hecho un Trigger
Gracias

"Maxi" escribió en el mensaje
news:%
Hola, si nos pasaras las definicion de las tablas y algun ejemplo de lo
que buscas hacer seria fantastico. De todas maneras, has probado con
hacer un trigger?



Salu2

Microsoft MVP SQL Server
Culminis Speaker
INETA Speaker
www.sqlgururs.org
Email:


"Super" wrote in message
news:
Hola a todos y gracias de antemano.

Tengo una tabla con detalles de una solicitud y necesito despues de
mandar a convertir en oferta, insertar todos los rows que tengo en la
tabla detalle de oferta o detalle de factura, lo unico que se me ocurre
es esto.
ALTER PROCEDURE [dbo].[SGI_Convert_Oferta_Factura]
(

@NoSol nvarchar(50)

)

AS

DECLARE

@SolC nvarchar(50),

@Prod int,

@Cant int,

@PVent decimal(19,4),

@I int,

@Iv int


SET @Iv=1

SELECT @I=COUNT(*)

FROM Detalle_Solicitud

SELECT @SolC=NoSolicitud

,@Prod=Id_Producto

,@Cant=Cantidad

,@PVent=PrecioVenta


FROM [SGI].[dbo].[Detalle_Solicitud]

WHERE @NoSol=NoSolicitud

INSERT INTO [SGI].[dbo].[Detalle_Factura]

(No_Factura

,IdProducto

,Cantidad

,PrecioVenta)

VALUES

(@SolC

,@Prod

,@Cant

,@PVent)



Pero por supuesto, solo guarda el valor que encontró de ultimo, que es
con el que se quedó.

pensé hacer un ciclo
For i =1 to @I
.
Next i
pero no se como hacer esto en SQL
podrian darme alguna mano con esto o darme alguna otra idea que sea
mejor ?

Muchas gracias










email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida