|
#1
|
|||
|
|||
FOR ALL ENTRIES - Trae campos vacios
Buenas Tardes.
Estoy haciendo un select a una tabla con gran cantidad de informacion "AUSP". El campo ATWRT, esta vacio para algunos registros en la tabla AUSP por lo tanto el FOR ALL ENTRIES no me toma en cuenta todo el registro dejandolo por fuera de la seleccion. Existe alguna forma de poder traer los campos vacios usando el for all entries?? No se, alguna forma de darle al campo un valor diferente a null solamente mientras se esta ejecutando el select? SELECT objek atinn mafid klart atwrt atflv FROM ausp INTO TABLE it_ausp FOR ALL ENTRIES IN it_ausp_aux WHERE objek = it_ausp_aux-objek. Agradeceria cualquier ayuda ya que como esta tabla es tan grande no quisiera hacer un JOIN. |
#2
|
||||
|
||||
Si no quieres traer vacios no seria que pongas en tu WHERE que solo vengan los no vacios? Es decir seguramente tu tabla it_ausp_aux esta teniendo llaves OBJEK vacias y por eso tu tabla it_ausp trae campos vacios. Te recomendaria que ordenes tu tabla it_ausp_aux y elimines los que tienen el campo OBJEK vacios. SORT it_ausp_aux BY objek. DELETE it_ausp_aux WHERE objek EQ SPACE. Y luego de ello recien hacer el select y además poner en el where que solo te devuelvan los registros de la tabla AUSP que tengan valor en el campo ATWRT. Además debes validar que la tabla it_ausp_aux nunca este vacía por cuestiones de perfomance en tu código. IF it_ausp_aux[] IS NOT INITIAL. SELECT objek atinn mafid klart atwrt atflv FROM ausp INTO TABLE it_ausp FOR ALL ENTRIES IN it_ausp_aux WHERE objek = it_ausp_aux-objek AND atwrt NE space. ENDIF. Espero eso sea su problema, Saludos,
__________________
Saludos Cordiales, Alfredo Pastor Avendaño SAP - Consultant HCM Úlima edición por Alfredosite fecha: 28/05/10 a las 19:56:29. |
#3
|
|||
|
|||
Recordar o tener en cuenta que al usar FOR ALL ENTRIES del resultado final de la consulta se excluyen todas las filas duplicadas.
|
#4
|
|||
|
|||
Gracias por responder,
Pero mi problema es el contrario. Necesito que el SELECT me incluya los registros asi no tengan valor en el campo ATWRT, es decir, si tengo la tabla interna asi: OBJEK|ATWRT 10001|valor1 10002|valor2 y el siguiente registro a leer es: 10003|NULL Quiero que igual, se inserte en la tabla interna sin importar que el campo ATWRT sea NULL |
#5
|
||||
|
||||
Puedes probar:
IF it_ausp_aux[] IS NOT INITIAL. SELECT objek atinn mafid klart atwrt atflv FROM ausp INTO TABLE it_ausp FOR ALL ENTRIES IN it_ausp_aux WHERE objek = it_ausp_aux-objek AND ( atwrt IS NULL OR atwrt IS NOT NULL ). ENDIF. No se si te sirva,
__________________
Saludos Cordiales, Alfredo Pastor Avendaño SAP - Consultant HCM |
#6
|
|||
|
|||
hola,
ya habia probado el ATWRT is null or ATWRT pero no funciona. Me va tocar resignarme y cambiar todo a LEFT OUTER JOIN |
#7
|
||||
|
||||
buenas,
podes hacer 2 select a la tabla ausp una con el for all entries y el otro con la condicion que necesitas solo que en vez de INTO TABLE haces APPENDING TABLE a la tabla interna.
__________________
Sebastián Chiavia |
Herramientas | Buscar en Tema |
Desplegado | |
|
|