Merge oracle

Hola amigos tengo una consulta:
tengo dos tablas un vacia(sbs_consolidado_omar) y una llena de millones de datos llamada pre_consolidad_omar .
ambos tienen los mismos campos ,solo que la sbs_consolidado_omar tiene una campo mas que es total de clientes(algo asi ) ;
Entonces en la tabla pre_consolidado existen varios registros que poseen los mismos valores para 7 de sus 8 campos(menos vlr_deuda_cliente) entonces la idea mía es agrupar esos registros que coinciden y colocarlos en un solo registro en la tabla sbs_consolidado_omar que originalmente esta vacía y así actualizar el monto de la deuda cada vez que se encuentre otro registro que cumpla, y de no existir el registro en la tabla lo agrega como nuevo.
bueno esto lo trate de realizar asi pero:
MERGE INTO sbs_RCCCONSOLIDADO_OMAR c
USING pre_RCCCONSOLIDADO_OMAR p
ON (c.FCH_REPORTE=p.FCH_REPORTE and
c.CDG_EMP_FINANCIERA=p.CDG_EMP_FINANCIERA and
c.CDG_CTA_CONTABLE=p.CDG_CTA_CONTABLE and
c.CDG_CLASIFICACION=p.CDG_CLASIFICACION and
c.LTE_DEUDA=p.LTE_DEUDA and
c.ORG_CLIENTE=p.ORG_CLIENTE and
c.DOC_CLIENTE=p.DOC_CLIENTE
)
WHEN MATCHED THEN
UPDATE set c.CNT_CLIENTES=c.CNT_CLIENTES+1,c.VLR_DEUDA=c.VLR_DEUDA+p.VLR_DEUDA_CLIENTE
WHEN NOT MATCHED THEN
INSERT values (p.CDG_EMP_FINANCIERA,p.ORG_CLIENTE,p.DOC_CLIENTE,
1,p.VLR_DEUDA_CLIENTE,p.CDG_CTA_CONTABLE,p.CDG_CLASIFICACION,p.FCH_REPORTE,p.LTE_DEUDA);
Pero cuando lo corro la tabla sbs_consolidado_omar tiene el mismo numero de registros que la pre_consolidado, osea no reconoce las igualdades, toma a todos los registros como si ninguno se repitiera .
¿Por qué pasa eso?, puedo arreglar eso, y de no ser así, no me podrían recomendar una otra solución con un ejemplo para poder comprenderlo . Gracias

1 respuesta

Respuesta
1
Omar,
Con esta sentencia puedes lograr el objetivo...
INSERT INTO tabla 1(col1, col2, total)
SELECT col1, col2, sum(total)
   group by col1, col2

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas