Ver Mensaje Individual
  #2  
Viejo 27/05/14, 18:02:15
Ripper87 Ripper87 is offline
Member
 
Fecha de Ingreso: dic 2011
Mensajes: 37
Se pueden usar siempre que quieras, pero la verdad solo son necesarios cuando haces consultas con multiples tablas que tengan campos en común, ya sea con INNER JOIN, LEFT JOIN, RIGHT JOIN, subconsultas con EXISTS, IN, consultas anidadas con SELECT - ENDSELECT etc...

Por ejemplo si estas haciendo un INNER JOIN entre la bkpf y bsis, estas dos tablas tienen varios campos en común (bukrs, gjahr, belnr, etc...) entonces se usa el "~" para diferenciar a que tabla te estas refiriendo.

Igual cuando se asocia un "alias" a una tabla. Por ejemplo:

SELECT * INTO lt_tabla
FROM bkpf AS a INNER JOIN bsis AS b
ON a~bukrs EQ b~bukrs
WHERE a~ebeln EQ '123456'.

(la consulta no tiene sentido práctico, pero a manera de ejemplo...)

Si no colocaras el "a~" en la condición del WHERE, el compilador no sabría si te refieres al campo ebeln de la bkpf o de la bsis.

Úlima edición por Ripper87 fecha: 27/05/14 a las 18:06:13.
Responder Con Cita