Lo solucionaria usando otra tabla.
Una tabla de filtros... que tenga PRODUCTO y CUENTAS_VENCIDAS.
Y cada registro en la tabla es una condicion que debe ser filtrada.
Mencionaste el producto 8021 con dos cuentas vencidas como primera condicion de filtro.
Y todos los productos que tengan cero cuentas vencidas como segunda condicion de filtro.
Facil!
Primero cargas el producto 8021 y en la columna cuentas vencidas cargas un 2.
Luego, en el segundo caso, dejas vacia la columna producto y en la columna cuentas vencidas cargas un 0.
Importante! Dejando la columna vacia en la columna producto, no estas especificando a ningun producto en particular, por lo tanto, los estas seleccionando a todos.
Código SQL:
Ver originalSELECT PRODUCTO,
CUENTAS_VENCIDAS
FROM (
SELECT P.PRODUCTO,
P.CUENTAS_VENCIDAS,
DECODE(R.PRODUCTO, NULL, DECODE(R.CUENTAS_VENCIDAS, NULL, 'DISABLED', 'ENABLED'), 'ENABLED') FLAG
FROM PRODUCTOS P,
PRODUCTOS_RFRC R
WHERE NVL(R.PRODUCTO, P.PRODUCTO) = P.PRODUCTO
AND NVL(R.CUENTAS_VENCIDAS, P.CUENTAS_VENCIDAS) = P.CUENTAS_VENCIDAS
)
WHERE FLAG = 'ENABLED'
Este modelo tambien te podria servir cuando quieras por ejemplo, filtrar un producto puntual sin importar sus cuentas vencidas.
El concepto del FLAG es muy sencillo.
Cuando cruce la tabla de referencia con la tabla de productos, voy a marcar con una flag las coincidencias y luego me quedaria con ellas.
Cualquier duda, vuelves a escribir.
Saludo grande,
Mario.