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 13/01/09, 11:33:05
uo4396 uo4396 is offline
Member
 
Fecha de Ingreso: ago 2008
Mensajes: 90
Duda con consulta SQL en abap

Hola a todos.

Queria saber si el sql de abap soporta los conjuntos. Es decir, si hay alguna manera de hacer la siguiente consulta

select *
from tabla_A
where tabla-campo not in ( select campo
from tabla_B )

Muchas gracias a todos
Responder Con Cita
  #2  
Viejo 13/01/09, 14:54:02
gugutin gugutin is offline
Member
 
Fecha de Ingreso: jul 2008
Localización: Badalona(Barcelona) España
Mensajes: 71
Hola,

select *
from tabla_A
where tabla-campo not in ( select campo
from tabla_B )


Yo creo que si pones un ranges para campo tabla_b y lo llenas previamente,

RANGES: RNG_campo FOR tabla_b-campo.

RNG_campo-SIGN = 'E'
RNG_campo-OPTION = 'EQ'.
RNG_campo-LOW = tabla_b-campo.
RNG_campo-HIGH = SPACE.

APPEND RNG_campo.

luego la instruccion seria

select * from tabla_A
where tabla-campo in RNG_campo.

No estoy seguro si es esta tu pregunta, espero haberte podido ayudar.

Saludos
Responder Con Cita
  #3  
Viejo 13/01/09, 16:58:34
Avatar de melerogalan
melerogalan melerogalan is offline
Senior Member
 
Fecha de Ingreso: nov 2006
Localización: Murcia
Mensajes: 142
Una posible solución evitando sentencias negativas en los SELECTs, seria.

Seleccionar todos los registros de la TABLA A.

Con esta tabla accedemos a la TABLA B.

Recorremos la TABLA A y eliminamos los registros que esten en la TABLA B.

En la TABLA A tenemos los registros que no esta en la TABLA B.


Creo que es esto lo que buscas.
Responder Con Cita
  #4  
Viejo 13/01/09, 20:27:46
uo4396 uo4396 is offline
Member
 
Fecha de Ingreso: ago 2008
Mensajes: 90
Gracias a los dos.
En cuanto a la primera solución no me vale porqué con el rango me coge todos los valores comprendidos entre el mayor y el menor y yo no necesito todos sino unos cuantos dentro de ese rango.
La segunda solución es la que he pensado yo lo q pasa que quería ver la forma de realizarlo en una única consulta SQL y no tener que hacer loops a tablas internas.

Muchas gracias de nuevo
Responder Con Cita
  #5  
Viejo 14/01/09, 06:17:46
bisonye bisonye is offline
Senior Member
 
Fecha de Ingreso: ago 2006
Mensajes: 635

En un rango puedes indicarle valores individuales, rangos, excluir valores individuales, exluir rangos, mayor, menor, etc, etc.

Revisa los campos Sign y Option.

Saludos
Responder Con Cita
  #6  
Viejo 14/01/09, 07:16:38
Avatar de melerogalan
melerogalan melerogalan is offline
Senior Member
 
Fecha de Ingreso: nov 2006
Localización: Murcia
Mensajes: 142

Por eficiencia es mejor hacer un loops simple a una tabla interna que utilizar rangos con sentencias negativas. Hay que evitar los accesos a Base de datos lo máximo posible porque es lo que mas recursos consume.

Saludos.
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 14:52:01.


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