Todoexpertos.com
http://www.todoexpertos.com
La respuesta está en Internet
Información de la pregunta
Título: ME ANULÉ, NECESITO AYUDAAA!!!
Experto: gmenendez
Valoración: 5
Fecha: 14/05/2008


ME ANULÉ, NECESITO AYUDAAA!!!
Tengo una tabla A con cuits y varios telefonos por cada uno, en otra tabla B tengo cuits y dos columnas para pegarle los telefonos, la prefunta es : como hago para pegarle los dos primeros telefonos que me aparecen en la tabla A a la tabla B?!?!?! Gracia.

ME ANULÉ, NECESITO AYUDAAA!!!
Me quedan varias dudas: 1) La estructura de tabla A. Sería algo como : cuits, telefono y un posible juego de datos sería: A,Tel1 A, Tel2 A, Tel3 B, Tel1 C, Tel1 C, Tel2 Supongo que la estructura de B sería: cuits, telefono1, telefono2 2) ¿ Como definís cuales son los 2 primeros telefónos de la tabla A ? Son cualquiera 2  de los que tenga cada cuits ? Si mis suposiciones anteriores son correctas, yo lo resolvería con un algoritmo no con una única consulta sql. Código PL/SQL (Oracle): declaro cursor A sobre tabla_A ordenada por cuits, un contador numerico y cuits_procesando (mismo tipo que cuits de tabla A y B) inicializo cuits_procesando en algún valor que no pueda tener en la tabla A loop cursor A     si A.cuits_procesando != cuits_procesando         seteo cuits_procesando = A.cuits         inicializo contador a 1     fin si     si contador = 1         actualizo telefono1 en tabla B con A.telefono para B.cuits = A.telefono         incremento contador en 1     sino         si contador = 2             actualizo telefono2 en tabla B con A.telefono para B.cuits = A.telefono             incremento contador en 1        fin si     fin si end loop;

ME ANULÉ, NECESITO AYUDAAA!!!
perdoname pero no entendí bien que haces en los IF, las supociciones son correctas... gracias.

ME ANULÉ, NECESITO AYUDAAA!!!
El primer IF controla si estoy procesando el mismo cuits ó cambió, el segundo y tercer IF me indica si tengo que llenar el telefono 1 ó 2 en tabla B para el cuits que se está recorriendo. Esto es porque a priori no se cuantos telefonos tengo en la tabla A para cada cuits y tengo que llenar un máximo de 2 en la tabla B. El algoritmo anterior se independiza de esos problemas. Entonces para cada cuits de tabla A, si tengo 1 teléfonos en tabla A va a llenar SOLO  telefono1 de tabla B, si tengo 2 teléfonos en tabla A va a llenar los 2 campos de tabla B y si tengo 3 ó más teléfonos en tabla A después de tomar 2 de ellos para llenar los campos de tabla B ignoro el resto. En palabras esto es lo que hace el loop con los IF's dentro.

Pregunta finalizada. Valoración: 5
Te agradezco muchisimo, me vino barbaro tu consejo. GRACIAS.


Volver al mensaje
http://www.todoexpertos.com/categorias/tecnologia-e-internet/bases-de-datos/lenguaje-sql/respuestas/1843624/me-anule-necesito-ayudaaa