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 22/07/08, 07:31:32
crisgil79 crisgil79 is offline
Junior Member
 
Fecha de Ingreso: feb 2008
Localización: Lleida, Catalunya (España)
Mensajes: 20
Unir tablas internas sumando campos iguales

Hola a todos,

Necesitaría unir dos tablas internas en una de manera que en los registros que obtendría repetidos, sumase un campo.

Pongo un ejemplo:

Tengo dos tablas internas:

1) it_prev con los siguientes campos:

| Año | Unidad Prevision | Servicio | Cantidad | Proveedor |
----------------------------------------------------------
| 2007 | 0000000000001 | 300 | 2 | 500 |
| 2007 | 0000000000001 | 301 | 3 | 500 |
| 2007 | 0000000000001 | 300 | 1 | 250 |


En esta tabla para cada proveedor tengo dos servicios diferentes cada uno con su cantidad

2) it_deleg con los siguientes campos:

| Distribuidora | Delegacion | Proveedor | Unidad prevision |
----------------------------------------------------------
| CEG | CC1 | 500 | 0000000000001 |

Para mi ejemplo con un registro tengo suficiente, es el que necesito.

Bien pues necesito unir it_prev y it_deleg en la tabla interna it_pro_del de manera que los registros que estén repetidos en la it_pro_del se sume su campo Cantidad. Así debería quedar la tabla it_pro_del:

| Proveedor | Delegación | Total |
---------------------------------
| 500 | CC1 | 5 |
| 250 | CC1 | 1 |

Si fuese con un select no habria problema, pero claro al ser tablas internas y tenerlo que hacer con un loop pues me supone tener que recorrer la misma tabla dos veces. ¿Sabeis si hay alguna manera de hacerlo más elegante?

Muchas gracias.

Saludos,

Cris.
Responder Con Cita
  #2  
Viejo 22/07/08, 08:52:03
bisonye bisonye is offline
Senior Member
 
Fecha de Ingreso: ago 2006
Mensajes: 635
¿Con un COLLECT no puedes hacerlo?

Saludos
Responder Con Cita
  #3  
Viejo 22/07/08, 09:05:35
crisgil79 crisgil79 is offline
Junior Member
 
Fecha de Ingreso: feb 2008
Localización: Lleida, Catalunya (España)
Mensajes: 20
Hola,

Perfecto!! era justo lo que estaba buscando.

Muchas gracias bisonye.

Saludos.
Responder Con Cita
  #4  
Viejo 22/07/08, 10:43:42
crisgil79 crisgil79 is offline
Junior Member
 
Fecha de Ingreso: feb 2008
Localización: Lleida, Catalunya (España)
Mensajes: 20
He probado el collect y funciona, pero solo cuando el campo cantidad es diferente a 0. Me interesaría que aunque Cantidad sea 0 también se añada a la nueva tabla interna.

Hay alguna manera de hacer eso?

Gracias.

Saludos.
Responder Con Cita
  #5  
Viejo 22/07/08, 10:49:46
bisonye bisonye is offline
Senior Member
 
Fecha de Ingreso: ago 2006
Mensajes: 635
¿Quieres decir que si el campo es 0 con el collect no te crea una entrada con el valor a 0?

Pues creo que debería hacerte la entrada, siempre que no exista una entrada ya con lo que lo suma y como es 0 pues eso, 0 más.

Si es nueva y no lo añade pues controla si el valor es 0 luego controla si la entrada existe y si no existe haces un append.

Saludos
Responder Con Cita
  #6  
Viejo 22/07/08, 11:13:08
crisgil79 crisgil79 is offline
Junior Member
 
Fecha de Ingreso: feb 2008
Localización: Lleida, Catalunya (España)
Mensajes: 20
Hola bisonye

si que crea las entradas cuando la cantidad es 0, perdona, mi compañera me habia dicho que no, lo he comprovado y funciona perfectamente.

Muchas gracias!!!!

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 11:04:55.


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