Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

Consulta que un solo producto cumpla con la condicion

Estas en el tema de Consulta que un solo producto cumpla con la condicion en el foro de Oracle en Foros del Web. Hola a todos; Tengo una base de datos con unos números de sitios, identificación de producto y cada producto tiene unas cuentas vencidas. algo así: ...
  #1 (permalink)  
Antiguo 07/06/2017, 08:40
Avatar de mager3  
Fecha de Ingreso: junio-2012
Ubicación: Medellin
Mensajes: 318
Antigüedad: 8 años, 9 meses
Puntos: 4
Mensaje Consulta que un solo producto cumpla con la condicion

Hola a todos;

Tengo una base de datos con unos números de sitios, identificación de producto y cada producto tiene unas cuentas vencidas. algo así:

TABLA PRODUCTOS

sitio / producto /cuenta vencida

123453 => 8021 / 2
______ 1234 / 2
______ 9383 / 0
______ 4552 / 2

Requiero que me informe SOLO aquellos sitios que el producto 8021 tienen 2 cuentas vencidas y los demás productos tienen 0 cuentas vencidas...

Como lo puedo enfocar?

Última edición por mager3; 07/06/2017 a las 09:05
  #2 (permalink)  
Antiguo 17/05/2018, 11:40
 
Fecha de Ingreso: noviembre-2007
Ubicación: Argentina
Mensajes: 134
Antigüedad: 13 años, 5 meses
Puntos: 3
Respuesta: Consulta que un solo producto cumpla con la condicion

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 original
  1. SELECT PRODUCTO,
  2.        CUENTAS_VENCIDAS
  3.   FROM (
  4. SELECT P.PRODUCTO,
  5.        P.CUENTAS_VENCIDAS,
  6.        DECODE(R.PRODUCTO, NULL, DECODE(R.CUENTAS_VENCIDAS, NULL, 'DISABLED', 'ENABLED'), 'ENABLED') FLAG
  7.   FROM PRODUCTOS P,
  8.        PRODUCTOS_RFRC R
  9.  WHERE NVL(R.PRODUCTO, P.PRODUCTO) = P.PRODUCTO
  10.    AND NVL(R.CUENTAS_VENCIDAS, P.CUENTAS_VENCIDAS) = P.CUENTAS_VENCIDAS
  11.        )
  12.  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.
__________________
Y venció David al filisteo con honda y piedra; e hirió al filisteo y lo mató, sin tener David espada en su mano.

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:07.