Por favor, utiliza el botón de código para hacer que la codificación sea más legible. Esta es tu pregunta:
SELECT a~field1, a~field2, a~field3, b~field3
FROM ( SELECT field1, field2, field3 FROM table1 ) AS a
INNER JOIN ( SELECT field1, field2, field3 FROM table2 ) AS b
ON a~field1 = b~field1
AND a~field2 = b~field2
La declaración SQL anterior es una mezcla de ABAP SQL (aún conocido como Open SQL) y SQL nativo de la base de datos. Definitivamente no funcionará en ABAP (principalmente debido a la selección de subconsultas) y dudo que funcione en tu servidor SQL (debido a '~' en lugar de '.').
Sin embargo, basado en lo que estás intentando lograr, el resultado es el 'mismo' que el siguiente, que funcionará en ABAP SQL. (Dado que ambos están escritos en SQL nativo adecuado, lo siguiente también tendría un mejor rendimiento que el anterior.)
SELECT a~field1, a~field2, a~field3, b~field3
FROM table1 AS a
INNER JOIN table2 AS b
ON a~field1 = b~field1
AND a~field2 = b~field2
INTO TABLE @DATA(itab).
Con ABAP SQL, así es como lo harías con 'Expresiones de Tabla Comunes' (cte) disponibles desde ABAP 75x:
(pero como ya se mencionó, el rendimiento será peor que la declaración ABAP anterior,)
WITH
+a AS ( SELECT field1, field2, field3 FROM table1 ),
+b AS ( SELECT field1, field2, field3 FROM table2 )
SELECT +a~field1, +a~field2, +a~field3, +b
Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019