SQL - Pasar datos entre tablas...

 
Vista:

Pasar datos entre tablas...

Publicado por BigCJ29 (2 intervenciones) el 30/05/2011 20:32:03
Hola, cuento con tres tablas : tabla1, tabla2 y tabla3.

tabla1 tiene una serie de campos, al rededor de 22...

El problema es que debo pasar algunos registros de tabla1 a tabla2 y de tabla1 a tabla3...

Entre tabla1 y tabla2 no tengo problema al pasar los datos pero de tabla1 a tabla3 si...

El problema es que tabla1 tiene los campos id, nombre, apellido, telefono, ... , rubro1, monto_rubro1, rubro2, monto_rubro2, rubro3, monto_rubro3...mientras que tabla3 tiene los campos id, rubro, monto...

Por lo que yo debo entrar y leer el registro de tabla1, leer rubro por rubro y pasar esta informacion registro por registro a tabla3...

De forma que seria :

tabla1
id|nombre|apellido|...|rubro1|monto1|rubro2|monto2|rubro3|monto3

tabla3
id|rubro|monto
--------------
1|rubro1|monto1
2|rubro2|monto2
3|rubro3|monto3

Alguna idea de como hacerlo por medio de un store procedure?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 806
Bronce
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Pasar datos entre tablas...

Publicado por Leonardo Josué (1173 intervenciones) el 30/05/2011 23:31:46
Hola BigCJ29:

En primer lugar, no nos mencionas qué manejador de BD estás utilizando, te recuerdo que la sintaxis no siempre es la misma entre los distintos manejadores del mercado,

Segundo: ¿el campo id de tu tabla 3 sería un Autonumérico o lleva alguna relación con ID id de la tabla1?

Tercero, ¿cuál es el criterio si existen registros duplicados, es decir que tengan el mismo rubro y monto?

Se me ocurre que hagas un UNION para cada rubro algo como esto

1
2
3
4
5
select rubro1 rubro, monto_rubro1 monto from Tabla1
union
select rubro2 rubro, monto_rubro2 monto from Tabla1
union
select rubro3 rubro, monto_rubro3 monto from Tabla1


faltaría asignar el ID y con esto podrías hacer el insert a tu tabla, pero para ayudarte a afinar la sentencia necesitaría la información que te pido al inicio

Saludos
Leo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Pasar datos entre tablas...

Publicado por BigCJ29 (2 intervenciones) el 03/06/2011 17:03:57
Disculpas por el retraso en la respuesta, estuve de gira en una zona de mi pais donde no hay internet ni telefonia celular...

Vean esta solucion... para mi caso lo unico que debo hacer es poner un where... como muestro a continuacion...

INSERT tabla3 (rubro, monto)
SELECT rubro1, monto1
FROM tabla1 where factura = @factura

INSERT tabla3 (rubro, monto)
SELECT rubro2, monto2
FROM tabla1 factura = @factura

INSERT tabla3 (rubro, monto)
SELECT rubro3, monto3
FROM tabla1 factura = @factura

Pero, asumiendo que debo de pasar cada 5 minutos, bloques de 25 registros... estos insert deberian de estar dentro de un select, para poder extraer el parametro de la @factura...

Cual seria el formato de este SELECT? pensando en que estos INSERT estan dentro de él...

Gracias...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar