separar campos de la tabla

17/06/2004 - 14:02 por Jomaweb | Informe spam
Hola

tengo la siguiente tabla:

CLIENTE PEDIDO1 FACTURA1 PEDIDO2 FACTURA2 PEDIDO3
FACTURA3

y quiero pasar sus datos a esta otra:

CLIENTE PEDIDO FACTURA NUMERO

El campo NUMERO es el que me permitirá determinar si es la factura 1 , la 2
o la 3. En principio iba así porque no era posible que un cliente tuviera
más de tres facturas a la misma vez. Pueden existir clientes con solo un
pedido, con dos o con tres. Mínimo siempre uno.

Lo intento con un procedimiento almacenado (que adjunto al final del texto)
pero solamente me pasa el primer cliente.
Me han dicho que visualmente es más facil hacerlo con las herramientas del
administrador corporativo como por ejemplo el asistente de paquetes de
transformación de datos o que si no tengo que hacer un lio con cursores
FETCH.
¿Sigo con el Procedimiento almacenado (que os ruego reviséis), me meto con
FETCH, o es más facil con los asistentes?

Gracias
____________________________________________________________________________
________________

CREATE PROCEDURE [pa_clientes_nuevaTabla] AS
DECLARE @cliente integer,@pedido1 integer, @factura1 integer, @pedido2
integer, @factura2 integer, @pedido3 integer, @factura3 integer

select @cliente=cliente,@pedido1=pedido1,
@factura1=factura1,@pedido2=pedido2, @factura2=factura2,@pedido3=pedido3,
@factura3=factura3 from TABLACLIENTES

IF (@factura1<>0) insert into NUEVATABLA
(cliente,pedido,factura,numero) values(@cliente,@pedido,@factura,'1')
IF (@factura2<>0) insert into NUEVATABLA
(cliente,pedido,factura,numero) values(@cliente,@pedido,@factura,'2')
IF (@factura3<>0) insert into NUEVATABLA (cliente,pedido,factura,numero)
values(@cliente,@pedido,@factura,'3')


GO
 

Leer las respuestas

#1 Maxi
17/06/2004 - 16:54 | Informe spam
Hola, y porque no usar Insert into?

o sea:

Insert into tabladestino (campos)
Select campos from tablaorigen

Asi deberias hacerlo


Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Jomaweb" escribió en el mensaje
news:uop$
Hola

tengo la siguiente tabla:

CLIENTE PEDIDO1 FACTURA1 PEDIDO2 FACTURA2 PEDIDO3
FACTURA3

y quiero pasar sus datos a esta otra:

CLIENTE PEDIDO FACTURA NUMERO

El campo NUMERO es el que me permitirá determinar si es la factura 1 , la


2
o la 3. En principio iba así porque no era posible que un cliente tuviera
más de tres facturas a la misma vez. Pueden existir clientes con solo un
pedido, con dos o con tres. Mínimo siempre uno.

Lo intento con un procedimiento almacenado (que adjunto al final del


texto)
pero solamente me pasa el primer cliente.
Me han dicho que visualmente es más facil hacerlo con las herramientas del
administrador corporativo como por ejemplo el asistente de paquetes de
transformación de datos o que si no tengo que hacer un lio con cursores
FETCH.
¿Sigo con el Procedimiento almacenado (que os ruego reviséis), me meto con
FETCH, o es más facil con los asistentes?

Gracias



____________________________________________________________________________
________________

CREATE PROCEDURE [pa_clientes_nuevaTabla] AS
DECLARE @cliente integer,@pedido1 integer, @factura1 integer, @pedido2
integer, @factura2 integer, @pedido3 integer, @factura3 integer

select @cliente=cliente,@pedido1=pedido1,
@factura1=factura1,@pedido2=pedido2, @factura2=factura2,@pedido3=pedido3,
@factura3=factura3 from TABLACLIENTES

IF (@factura1<>0) insert into NUEVATABLA
(cliente,pedido,factura,numero) values(@cliente,@pedido,@factura,'1')
IF (@factura2<>0) insert into NUEVATABLA
(cliente,pedido,factura,numero) values(@cliente,@pedido,@factura,'2')
IF (@factura3<>0) insert into NUEVATABLA


(cliente,pedido,factura,numero)
values(@cliente,@pedido,@factura,'3')


GO







Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.698 / Virus Database: 455 - Release Date: 02/06/2004

Preguntas similares