… UNION [ALL] select_statement …
Crea la unión de filas en los conjuntos de resultados de dos instrucciones SELECT de una vista CDS. Un requisito previo es que las estructuras de los conjuntos de resultados sean compatibles. Esto significa que los conjuntos de resultados deben tener el mismo número de elementos y que los pares de elementos en cada posición tienen un tipo de datos compatible. Si no se especifica una lista de nombres, los nombres de los elementos de los conjuntos de resultados deben coincidir.
Un conjunto de resultados de unión puede ser el lado izquierdo de otra unión. Las propiedades del conjunto de resultados de unión se definen de la siguiente manera:
- Los nombres de los elementos se toman de una lista de nombres explícitamente especificada o, si no se especifica ninguna lista, se utilizan los nombres coincidentes de las listas SELECT de todas las declaraciones SELECT.
- La definición de los elementos clave se toma de la primera instrucción SELECT.
- Si no se especifica la adición ALL, todas las entradas duplicadas se eliminan del conjunto de resultados. No se eliminan si se especifica ALL.
Una vista CDS en la que se forman conjuntos de unión con UNION puede exponer asociaciones. Una asociación debe definirse y exponerse de la misma manera en todas las declaraciones SELECT unidas con UNION. Es decir, las asociaciones que se publican en las listas SELECT respectivas deben aparecer en todas las declaraciones SELECT unidas con UNION y se deben cumplir los siguientes requisitos:
- Tener el mismo nombre.
- Tener la misma cardinalidad.
- Deben publicarse en la misma posición en la lista SELECT utilizando una expresión “path”.
- Deben tener las mismas condiciones ON, es decir, las condiciones deben estar relacionadas con los mismos campos en la fuente de datos de origen y destino y expresar la misma lógica para estos campos y que los campos de la fuente de datos que se enumeran en las condiciones deben estar en posiciones respectivas idénticas en la lista SELECT.
- Notas
Los conjuntos de unión pueden ser una buena forma de transformar las tablas de bases de datos no estandarizadas en una vista estandarizada de los datos.
Una vista de CDS con conjuntos de unión no se puede expandir con EXTEND VIEW.
- Ejemplo práctico
Creamos el CDS con el nombre ZB_06_GVALLER y el nombre ZVB_06_GVALER en la anotación @AbapCatalog.sqlViewName para la vista del diccionario de datos. Como fuente de datos utilizamos las tablas de base de datos estándar DEMO_JOIN1 y DEMO_JOIN2 realizando una unión. Seleccionamos las columnas A y B con los nombres alias COLUMNA1 y COLUMNA2 de la primera tabla y las columnas D y E de la segunda tabla con los nombre alias COLUMNA1 y COLUMNA2.
- Data Preview
Realizamos pruebas visualizando los datos con UNION y UNION ALL.