Subqueries SQL - conocer productos disponibles

Iniciado por VicInFlames, 6 Diciembre 2016, 18:55 PM

0 Miembros y 1 Visitante están viendo este tema.

VicInFlames

Esta es la query original..

Código (sql) [Seleccionar]
$sql_articulos = "select
            idi.codigo,
            idi.nombre,
            idi.resumen,
            art.codigo,
            art.novedad,
            art.puntoscompra,
            art.puntoscanje,
            art.tipooferta,
            art.oferta,
            art.idmarca,
            art.idmodelo,
            art.idmaterial,
            art.tipo,
            art.pvp,
            art.novedad,
            art.coche,
            art.orden


            from


            articulos as art,
            articulo_idioma as idi


            where


            art.codigo NOT IN ({$cods_reservados})
            and
            art.codigo = idi.codigo and
            (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 (sql) [Seleccionar]

$sql_articulos = "select
            idi.codigo,
            idi.nombre,
            idi.resumen,
            art.codigo,
            art.novedad,
            art.puntoscompra,
            art.puntoscanje,
            art.tipooferta,
            art.oferta,
            art.idmarca,
            art.idmodelo,
            art.idmaterial,
            art.tipo,
            art.pvp,
            art.novedad,
            art.coche,
            art.orden,
            tal.stock


            from


            articulos as art,
            articulo_idioma as idi,
            articulos_tallas as tal


            where


             tal.stock >
            (SELECT SUM(stock) AS total FROM articulos_tallas
            WHERE codigo =  tal.stock)

            and
            art.codigo NOT IN ({$cods_reservados})
            and
            art.codigo = idi.codigo and
            (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)

fran800m

Citarpretendo 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.

VicInFlames

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

fran800m

¿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.