¿Cómo hago para pegarle los dos primeros teléfonos que me aparecen en la tabla A a la tabla B?

Tengo una tabla A con cuits y varios teléfonos por cada uno, en otra tabla B tengo cuits y dos columnas para pegarle los teléfonos, la pregunta es : ¿Cómo hago para pegarle los dos primeros teléfonos que me aparecen en la tabla A a la tabla B?!?!?!
Gracia.

1 respuesta

Respuesta
1
Me quedan varias dudas:
1) La estructura de tabla A. Sería algo como : cuits, teléfono 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) ¿Cómo 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 numérico 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;
Perdoname pero no entendí bien que haces en los IF, las suposiciones son correctas...
Gracias.
El primer IF controla si estoy procesando el mismo cuits o cambió, el segundo y tercer IF me indica si tengo que llenar el teléfono 1 ó 2 en tabla B para el cuits que se está recorriendo.
Esto es porque a priori no se cuantos teléfonos 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.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas