Principales respuestas
Union de una tabla con otra en la parte central.

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
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
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
-
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.PIDtermine por hacerlo asi, muchas gracias tu codigo me ayudo mucho como guia.
:)
- Editado Augusto Mejia miércoles, 18 de septiembre de 2019 23:01