none
Union de una tabla con otra en la parte central. RRS feed

  • Pregunta

  • Hola, estoy tratando de unir dos tablas con UNION ALL pero quisiera unir los datos de la TABLA2 en la parte media de la TABLA1:

    --Tabla1:

    SELECT

    PID_CLAVE, record_id, fi_fec, fi_id, fi_enc, fi_pid, fi1, fi3, fi4, dif, fi2, columna_central1,

    columna_central2, fi5_1, fi5_2, fi7, fi8, fi9, fi10, fi10_1, fi10_2, fi11, fi11_1 FROM [Imprep].[dbo].[Redcap_Imprep]

    TABLA2:

    --tabla2: select

    PID_CLAVE, v3vtc_ea1_o, v3vtc_ea2, v3vtc_ea3_1, v3vtc_ea3, v3vtc_ea4, v3vtc_ea4_1, v3vtc_ea5, v3vtc_ea8 FROM [Imprep].[dbo].[Redcap_Imprep]


    quisiera que mis columnas de la TABLA2 terminaran entre las columnas Columna_central1 y Columna_central2 de la TABLA1. 



    :)




    • Editado Augusto Mejia miércoles, 18 de septiembre de 2019 17:10
    miércoles, 18 de septiembre de 2019 17:05

Respuestas

Todas las respuestas

  • Hola Augusto Mejia:

    Unión All no hace eso. Sirve para unir filas de diferentes origenes.

    --Tabla1:
    WITH R
         AS (SELECT ROW_NUMBER() OVER(
                    ORDER BY
             (
                 SELECT NULL
             )) AS fila, 
                    PID_CLAVE, 
                    record_id, 
                    fi_fec, 
                    fi_id, 
                    fi_enc, 
                    fi_pid, 
                    fi1, 
                    fi3, 
                    fi4, 
                    dif, 
                    fi2, 
                    columna_central1, 
                    columna_central2, 
                    fi5_1, 
                    fi5_2, 
                    fi7, 
                    fi8, 
                    fi9, 
                    fi10, 
                    fi10_1, 
                    fi10_2, 
                    fi11, 
                    fi11_1
             FROM [Imprep].[dbo].[Redcap_Imprep]),
         R2
         AS (
         --tabla2:
         SELECT ROW_NUMBER() OVER(
                ORDER BY
         (
             SELECT NULL
         )) AS fila2, 
                PID_CLAVE, 
                v3vtc_ea1_o, 
                v3vtc_ea2, 
                v3vtc_ea3_1, 
                v3vtc_ea3, 
                v3vtc_ea4, 
                v3vtc_ea4_1, 
                v3vtc_ea5, 
                v3vtc_ea8
         FROM [Imprep].[dbo].[Redcap_Imprep])
         SELECT R.PID_CLAVE, 
                R.record_id, 
                R.fi_fec, 
                R.fi_id, 
                R.fi_enc, 
                R.fi_pid, 
                R.fi1, 
                R.fi3, 
                R.fi4, 
                R.dif, 
                R.fi2, 
                R2.PID_CLAVE, 
                R2.v3vtc_ea1_o, 
                R2.v3vtc_ea2, 
                R2.v3vtc_ea3_1, 
                R2.v3vtc_ea3, 
                R2.v3vtc_ea4, 
                R2.v3vtc_ea4_1, 
                R2.v3vtc_ea5, 
                R2.v3vtc_ea8, 
                R.fi5_1, 
                R.fi5_2, 
                R.fi7, 
                R.fi8, 
                R.fi9, 
                R.fi10, 
                R.fi10_1, 
                R.fi10_2, 
                R.fi11, 
                R.fi11_1
         FROM R
              FULL JOIN R2 ON R.fila = R2.fila;

    He puesto como combinación FULL JOIN, puesto que no se sabe nada sobre los datos.

    Tablas de expresión común

    https://javifer2.blogspot.com/search/label/tablas%20de%20expresión%20común%20%281%29

    https://javifer2.blogspot.com/search/label/tablas%20de%20expresión%20común%20%282%29

    Combinaciones

    https://javifer2.wordpress.com/2019/09/16/combinaciones-entre-tablas-inner-left-right-full/


    • Propuesto como respuesta Pablo RubioModerator miércoles, 18 de septiembre de 2019 18:50
    • Marcado como respuesta Augusto Mejia miércoles, 18 de septiembre de 2019 22:58
    miércoles, 18 de septiembre de 2019 17:39
  • SELECT 
        a.[PID],
    a.[num_reg],
    a.[prefiere_social],
    a.[paterno],
    a.[materno],
    a.[nombre],
    a.[nombre_social],
    a.[fe_nac],
    a.[pais_nac],
    a.[nacionalidad],
    a.[co_extranjero],

    e.[record_id],
    e.[fi_fec],
    e.[fi_id],
    e.[fi_enc],
    e.[fi_pid],
    e.[fi1],
    e.[fi3],
    e.[fi4],
    e.[dif],
    e.[fi2],
    e.[fi2_1],
    e.[fi5],
    e.[fi5_1],
    e.[fi5_2],
    e.[fi7],
    e.[fi8],
    e.[fi9],
    e.[fi10],
    e.[fi10_1],
    e.[fi10_2],
    e.[fi11],
    e.[fi11_1],
    e.[v1vic_cs_01],
    e.[v1vic_cs_01_otro],
    e.[v1vic_cs_04],
    e.[v1vic_cs_04_o],
    e.[v1vic_cs_07],
    e.[v1vic_cs_08___1],
    e.[v1vic_agus_01],
    e.[v1vic_agus_01_veces],
    e.[v1vic_agus_02],
    e.[v1vic_agus_03],
    e.[v1vic_agus_03_o],
    e.[v1vic_agus_04_1],
    e.[v1vic_agus_04_1_o],
    e.[v1vic_agus_05],
    e.[v1vic_agus_05_otro],
    e.[v1vic_agus_07],
    e.[v1vic_agus_08],
    e.[v1vic_agus_10],
    e.[v1vic_agus_10_otro],
    e.[v1vic_ss_01],
    e.[v1vic_ss_01_1],
    e.[v1vic_ss_01_2],

    a.[infecc_aguda_ret] ,
    a.[efecto_adverso1] ,
    a.[efecto_adverso2] ,
    a.[efecto_adverso3] ,
    a.[efecto_adverso4] ,
    a.[efecto_adverso5] ,
    a.[efecto_adverso6] ,
    a.[efecto_adverso7] ,
    a.[sintomas_persisten] ,
    a.[dias_olvido] 

    FROM [Imprep].[dbo].[V2_Union_VI30D_R90_120] AS a left JOIN [Imprep].[dbo].[Redcap_VisitaInicial] AS e  
    ON e.fi_pid = a.PID 

    termine por hacerlo asi, muchas gracias tu codigo me ayudo mucho como guia.


    :)


    • Editado Augusto Mejia miércoles, 18 de septiembre de 2019 23:01
    miércoles, 18 de septiembre de 2019 23:01