SP no se como ????

05/09/2006 - 16:49 por Super | Informe spam
Hola a todos y gracias de antemano.

tengo el siguiente problema quiero hacer un insert del detalle de oferta en
la tabla detalle de factura, pero este puede tener varias lineas y cuando
hago esto

CREATE PROCEDURE [dbo].[SGI_Convert_Oferta_Factura]

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]

INSERT INTO [SGI].[dbo].[Detalle_Factura]
(No_Factura
,IdProducto
,Cantidad
,PrecioVenta)
VALUES
(@SolC
,@Prod
,@Cant
,@PVent)


GO

Claro con su respectivo where NoSolicitud = 'el que sea', solo me inserta el
ultimo y son 4, como logro hacer esto ? pueden darme una ayudita ?

SELECT @I=COUNT(*)
FROM Detalle_Solicitud (esto solo lo puse con la idea de hacer un
ciclo, pero no supe como)

Gracias nuevamente

Preguntas similare

Leer las respuestas

#1 J.A. García Barceló
05/09/2006 - 17:40 | Informe spam
Utiliza la estructura INSERT SELECT para insertar más de un registro.

CREATE PROCEDURE [dbo].[SGI_Convert_Oferta_Factura] @N_Of int
AS
INSERT INTO [SGI].[dbo].[Detalle_Factura]
(No_Factura,IdProducto,Cantidad,PrecioVenta)
SELECT [los campos que sean] FROM Detalle_Solicitud WHERE [la condicion
que sea, probablemente No_Oferta = @N_Of)


Un saludo.

J.A. García Barceló
http://jagbarcelo.blogspot.com



"Super" escribió en el mensaje
news:
Hola a todos y gracias de antemano.

tengo el siguiente problema quiero hacer un insert del detalle de oferta
en la tabla detalle de factura, pero este puede tener varias lineas y
cuando hago esto

CREATE PROCEDURE [dbo].[SGI_Convert_Oferta_Factura]

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]

INSERT INTO [SGI].[dbo].[Detalle_Factura]
(No_Factura
,IdProducto
,Cantidad
,PrecioVenta)
VALUES
(@SolC
,@Prod
,@Cant
,@PVent)


GO

Claro con su respectivo where NoSolicitud = 'el que sea', solo me inserta
el ultimo y son 4, como logro hacer esto ? pueden darme una ayudita ?

SELECT @I=COUNT(*)
FROM Detalle_Solicitud (esto solo lo puse con la idea de hacer un
ciclo, pero no supe como)

Gracias nuevamente




Respuesta Responder a este mensaje
#2 jcac
05/09/2006 - 17:42 | Informe spam
Hola supongo que solo deberias de hacer esto:

Create Procedure [dbo].[SGI_Convert_Oferta_Factura]
As
Insert Into [SGI].[dbo].[Detalle_Factura]
(No_Factura
,IdProducto
,Cantidad
,PrecioVenta)
Select NoSolicitud
,Id_Producto
,Cantidad
,PrecioVenta
FROM [SGI].[dbo].[Detalle_Solicitud]

Espero te sirva, ojo con esto pasaras todo lo de la tabla Detalle_Solicitud
a la tabla Detalle_Factura pienso que deberias de indicar el numero de
solicitud que vas a generar como factura. Osea pornerle un where en el
select algo asi

Create Procedure [dbo].[SGI_Convert_Oferta_Factura]
@NumeroSolicitud int
As
Insert Into [SGI].[dbo].[Detalle_Factura]
(No_Factura
,IdProducto
,Cantidad
,PrecioVenta)
Select NoSolicitud
,Id_Producto
,Cantidad
,PrecioVenta
FROM [SGI].[dbo].[Detalle_Solicitud]
Where Nocolicitud = @NumeroSolicitud

Saludos


"Super" escribió en el mensaje
news:
Hola a todos y gracias de antemano.

tengo el siguiente problema quiero hacer un insert del detalle de oferta
en la tabla detalle de factura, pero este puede tener varias lineas y
cuando hago esto

CREATE PROCEDURE [dbo].[SGI_Convert_Oferta_Factura]

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]

INSERT INTO [SGI].[dbo].[Detalle_Factura]
(No_Factura
,IdProducto
,Cantidad
,PrecioVenta)
VALUES
(@SolC
,@Prod
,@Cant
,@PVent)


GO

Claro con su respectivo where NoSolicitud = 'el que sea', solo me inserta
el ultimo y son 4, como logro hacer esto ? pueden darme una ayudita ?

SELECT @I=COUNT(*)
FROM Detalle_Solicitud (esto solo lo puse con la idea de hacer un
ciclo, pero no supe como)

Gracias nuevamente




Respuesta Responder a este mensaje
#3 Super
05/09/2006 - 18:41 | Informe spam
Gracias lo probaré


"J.A. García Barceló" escribió en el mensaje
news:%
Utiliza la estructura INSERT SELECT para insertar más de un registro.

CREATE PROCEDURE [dbo].[SGI_Convert_Oferta_Factura] @N_Of int
AS
INSERT INTO [SGI].[dbo].[Detalle_Factura]
(No_Factura,IdProducto,Cantidad,PrecioVenta)
SELECT [los campos que sean] FROM Detalle_Solicitud WHERE [la condicion
que sea, probablemente No_Oferta = @N_Of)


Un saludo.

J.A. García Barceló
http://jagbarcelo.blogspot.com



"Super" escribió en el mensaje
news:
Hola a todos y gracias de antemano.

tengo el siguiente problema quiero hacer un insert del detalle de oferta
en la tabla detalle de factura, pero este puede tener varias lineas y
cuando hago esto

CREATE PROCEDURE [dbo].[SGI_Convert_Oferta_Factura]

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]

INSERT INTO [SGI].[dbo].[Detalle_Factura]
(No_Factura
,IdProducto
,Cantidad
,PrecioVenta)
VALUES
(@SolC
,@Prod
,@Cant
,@PVent)


GO

Claro con su respectivo where NoSolicitud = 'el que sea', solo me inserta
el ultimo y son 4, como logro hacer esto ? pueden darme una ayudita ?

SELECT @I=COUNT(*)
FROM Detalle_Solicitud (esto solo lo puse con la idea de hacer
un ciclo, pero no supe como)

Gracias nuevamente








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