Foro de elhacker.net

Programación => Bases de Datos => Mensaje iniciado por: VicInFlames en 6 Diciembre 2016, 18:55 pm



Título: Subqueries SQL - conocer productos disponibles
Publicado por: VicInFlames en 6 Diciembre 2016, 18:55 pm
Esta es la query original..

Código
  1. $sql_articulos = "select
  2.            idi.codigo,
  3.            idi.nombre,
  4.            idi.resumen,
  5.            art.codigo,
  6.            art.novedad,
  7.            art.puntoscompra,
  8.            art.puntoscanje,
  9.            art.tipooferta,
  10.            art.oferta,
  11.            art.idmarca,
  12.            art.idmodelo,
  13.            art.idmaterial,
  14.            art.tipo,
  15.            art.pvp,
  16.            art.novedad,
  17.            art.coche,
  18.            art.orden
  19.  
  20.  
  21.            from
  22.  
  23.  
  24.            articulos as art,
  25.            articulo_idioma as idi
  26.  
  27.  
  28.            where
  29.  
  30.  
  31.            art.codigo NOT IN ({$cods_reservados})
  32.            and
  33.            art.codigo = idi.codigo and
  34.            (art.baja IS NULL or art.baja > '".DATE('Y-m-d')."') ";
La cual me devuelve correctamente los datos tras un filtro. La pregunta ahora es..como lo hago para filtrar estos mismos datos,para SI mostrar los productos que todavía posean Stock libre..os lo explico con mi idea.
Código
  1. $sql_articulos = "select
  2.            idi.codigo,
  3.            idi.nombre,
  4.            idi.resumen,
  5.            art.codigo,
  6.            art.novedad,
  7.            art.puntoscompra,
  8.            art.puntoscanje,
  9.            art.tipooferta,
  10.            art.oferta,
  11.            art.idmarca,
  12.            art.idmodelo,
  13.            art.idmaterial,
  14.            art.tipo,
  15.            art.pvp,
  16.            art.novedad,
  17.            art.coche,
  18.            art.orden,
  19.            tal.stock
  20.  
  21.  
  22.            from
  23.  
  24.  
  25.            articulos as art,
  26.            articulo_idioma as idi,
  27.            articulos_tallas as tal
  28.  
  29.  
  30.            where
  31.  
  32.  
  33.             tal.stock >
  34.            (SELECT SUM(stock) AS total FROM articulos_tallas
  35.            WHERE codigo =  tal.stock)
  36.  
  37.            and
  38.            art.codigo NOT IN ({$cods_reservados})
  39.            and
  40.            art.codigo = idi.codigo and
  41.            (art.baja IS NULL or art.baja > '".DATE('Y-m-d')."') "

De esta forma,pretendo que se tenga en cuenta el stock inicial,y asi,si el producto no tiene reservado todo el STOCK,SÍ mostrarlo.

Necesito un filtro que me muestre los productos disponibles (que tengan Stock disponible)


Título: Re: Subqueries SQL - conocer productos disponibles
Publicado por: fran800m en 8 Diciembre 2016, 15:28 pm
Citar
pretendo que se tenga en cuenta el stock inicial,y asi,si el producto no tiene reservado todo el STOCK,SÍ mostrarlo.

No entiendo lo que quieres hacer.


Título: Re: Subqueries SQL - conocer productos disponibles
Publicado por: VicInFlames en 8 Diciembre 2016, 15:33 pm
El filtro evita mostrar los productos cuyo id aparezca en la tabla de "Reservas",pero no se tiene en cuenta el stock,solamente que aparezca,y claro,de esta forma se filtrará un producto de stock 4 cuando haya reservado solo 1 de esos 4 disponibles


Título: Re: Subqueries SQL - conocer productos disponibles
Publicado por: fran800m en 8 Diciembre 2016, 19:15 pm
¿Quieres no mostrar productos sin stock?
¿Por qué no relacionas articulos con articulos_tallas como sí lo haces entre articulos y articulo_idioma ?

No tengo idea de cómo se componen y relacionan las tablas.