MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Programación ABAP IV
Nombre de Usuario
Contraseña
Home Descargas Registrar FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




 
Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Viejo 28/05/10, 18:15:36
andresf02 andresf02 is offline
Senior Member
 
Fecha de Ingreso: nov 2009
Mensajes: 190
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.
Responder Con Cita
  #2  
Viejo 28/05/10, 19:53:19
Avatar de Alfredosite
Alfredosite Alfredosite is offline
Senior Member
 
Fecha de Ingreso: jul 2007
Localización: Lima-Perú
Mensajes: 135
Question


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.
Responder Con Cita
  #3  
Viejo 28/05/10, 19:59:42
Mauricio Hidalgo Mauricio Hidalgo is offline
Senior Member
 
Fecha de Ingreso: may 2006
Localización: Santiago, Chile
Mensajes: 481
Recordar o tener en cuenta que al usar FOR ALL ENTRIES del resultado final de la consulta se excluyen todas las filas duplicadas.
Responder Con Cita
  #4  
Viejo 28/05/10, 20:00:56
andresf02 andresf02 is offline
Senior Member
 
Fecha de Ingreso: nov 2009
Mensajes: 190
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
Responder Con Cita
  #5  
Viejo 28/05/10, 20:42:26
Avatar de Alfredosite
Alfredosite Alfredosite is offline
Senior Member
 
Fecha de Ingreso: jul 2007
Localización: Lima-Perú
Mensajes: 135
Exclamation

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
Responder Con Cita
  #6  
Viejo 28/05/10, 20:49:25
andresf02 andresf02 is offline
Senior Member
 
Fecha de Ingreso: nov 2009
Mensajes: 190
hola,

ya habia probado el ATWRT is null or ATWRT pero no funciona.
Me va tocar resignarme y cambiar todo a LEFT OUTER JOIN
Responder Con Cita
  #7  
Viejo 31/05/10, 12:20:05
Avatar de mysmb2
mysmb2 mysmb2 is offline
Senior Member
 
Fecha de Ingreso: ene 2007
Localización: Cordoba
Mensajes: 406
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
Responder Con Cita
  #8  
Viejo 31/05/10, 12:22:32
Avatar de melerogalan
melerogalan melerogalan is offline
Senior Member
 
Fecha de Ingreso: nov 2006
Localización: Murcia
Mensajes: 142
No entendo muy bien lo que buscas, pero con este SELECT traes los registros definidos con el campo objeck y los del campo atwrt vacio.

Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Reglas de Mensajes
no puedes crear nuevos temas
no puedes responder temas
no puedes adjuntar archivos
no puedes editar tus mensajes

El código vB está On
Las caritas están On
Código [IMG] está On
Código HTML está Off
Saltar a Foro


Husos Horarios son GMT. La hora en este momento es 21:11:08.


www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web