Skip to main content
Announcements
Global Transformation Awards! Applications are now open. Submit Entry
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Unir 2 tablas procedentes de excel

Hola, tengo 2 tablas que proceden de 2 excel distintos, tienen algunos datos comunes y lo que quiero es unirlas en una sola tabla y eliminar las anteriores.

Lo he intentado con Left Join y Drop Table pero no lo consigo solucionar.

Aquí dejo mi ejemplo:

CosteHorario:

LOAD

     FASE_PROYECTO,

     F.V,

     DEPARTAMENTO,

     EQUIPO,

     [H. TEORICAS],

     Precio,

     [COSTE TEORICO],

     rellenado,

     VENTA,

     %proyecto,

     [años contrato],

     [fecha inicio contrato],

FROM

[\\....\COSTES.xlsx]

(ooxml, embedded labels, header is 1 lines, table is COSTE);

CosteHorarioOtro:

LOAD

      FASE_PROYECTO,

     [CODIGO PROYECTO],

     DEPARTAMENTO,

     EQUIPO,

     [H. TEORICAS]

FROM

[......presupuestos.xlsx]

(ooxml, embedded labels, header is 3 lines, table is [PRESUPUESTOS]);

***** OJO ******

( Los valores repetidos en las 2 tablas quiero que los de la tabla CosteHorarioOtro sustituya a los de CosteHorario )

Espero que alguien me ayude.

Un saludo y gracias.

4 Replies
Not applicable
Author

Concatenate (CosteHorario) load * from presupuestos.xlsx

soniacoprosa
Creator
Creator

Hola Juan,

Yo lo haría con un Outer Join.

CosteHorario:

LOAD

    FASE_PROYECTO,

    DEPARTAMENTO,

    EQUIPO,

    [H.TEORICAS],

    [CODIGO PROYECTO]

FROM [....presupuestos.xlsx] (ooxml, embedded labels, header is 3 lines, table is [PRESUPUESTOS]);

Outer Join(CosteHorario)                          // así añadirá aquellos registros que no existan en la 1ª tabla)

LOAD

    FASE_PROYECTO,

    DEPARTAMENTO,

    EQUIPO,

    [H.TEORICAS],

    [CODIGO PROYECTO],        // nuevo campo

    F.V,

    Precio,

     [COSTE TEORICO] ,

    rellenado,

    VENTA,

    %proyecto,

    años contrato],

    [fecha inicio contrato]

FROM  [\\...\COSTES.xlsx] (ooxml, embedded labels, header is 1 lines, table is COSTE);

La segunda tabla debería tener los campos de la primera también, ya que sino no funcionaría. Por eso he puesto las tablas en éste orden. Tendrás que añadir el campo  que falta en la 2ª tabla en el excel (no importa que no tenga datos).

Un saludo,

josemaria
Creator II
Creator II

Hola Juan,

prueba hacer un Join con las dos tablas

saludos

Not applicable
Author

Se repiten los campos FASE_PROYECTO, DEPARTAMENTO, EQUIPO y [H. TEORICAS]. Supongo que para considerar que dos registros son iguales deberían ser iguales los tres primeros campos y te refieres a que las H. Teóricas se sustituirían con las de la segunda tabla si ya existe ese campo en la primera tabla. En este caso, una forma de hacerlo sería la siguiente:


CosteHorario_TMP:

LOAD ...

     FASE_PROYECTO,

     F.V,

     DEPARTAMENTO,

     EQUIPO,

     [H. TEORICAS] AS H1,

     Precio,

     [COSTE TEORICO],

     rellenado,

     VENTA,

     %proyecto,

     [años contrato],

     [fecha inicio contrato]

FROM COSTES.xlsx;

Outer Join

LOAD

      FASE_PROYECTO,

     [CODIGO PROYECTO],

     DEPARTAMENTO,

     EQUIPO,

     [H. TEORICAS] AS H2

FROM presupuestos.xlsx;

CosteHorario:

LOAD *

     Alt(H2, H1, 0) AS [H. TEORICAS]

Resident CosteHorario_TMP;

DROP Table CosteHorario_TMP;