Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/10/2009, 10:40
SusoX
 
Fecha de Ingreso: agosto-2007
Ubicación: Valencia
Mensajes: 23
Antigüedad: 16 años, 9 meses
Puntos: 0
Consulta con IF

Hola a todos,

Tengo un problemilla con una consulta y realmente ya no se si es posible hacer lo que me propongo.

Mi intención es listar productos para una gestión de stock en el listado aparecen el nombre de los diseños previamente filtrados por familias y subfamilias, cada linea devuelta por la consulta debe devolver el nombre del diseño , el umbral que tiene dentro del almacen y la cantidad de productos por talla.

Todas las tablas que utilizado están relacionadas entre sí, ya sea de manera directa o indirecta por lo que creo que si es posible hacerlo.

Hasta ahora he conseguido que me muestre toda la información que quiero, lo que no consigo es que me sume las unidades de cada talla para que se muestren en una sola línea agrupadas por el diseño.

Esta es la consulta que utilizo:

Código sql:
Ver original
  1. SELECT  d.nombre,  IF(p.talla=9,SUM(pa.unidades),0) AS CL,
  2. IF(p.talla=8,SUM(pa.unidades),0) AS CM, IF(p.talla=7,SUM(pa.unidades),0) AS CS,
  3. IF(p.talla=2,SUM(pa.unidades),0) AS L, IF(p.talla=1,SUM(pa.unidades),0) AS M,
  4. IF(p.talla=10,SUM(pa.unidades),0) AS NT, IF(p.talla=3,SUM(pa.unidades),0) AS S,
  5. IF(p.talla=4,SUM(pa.unidades),0) AS XL, pa.umbral FROM disenyos AS d, productos
  6. AS p, productos_almacenes AS pa WHERE p.disenyo=d.id AND pa.producto=p.id
  7. AND p.id IN (SELECT p.id FROM productos AS p, familias AS f, subfamilias AS sf
  8. WHERE p.subfamilia=sf.id AND f.id=sf.familia AND sf.borrado='0' AND f.borrado='0'
  9.  AND p.borrado='0' AND p.subfamilia='209' AND sf.familia='30') AND d.borrado='0'
  10. AND pa.almacen='1' GROUP BY p.id  ORDER BY d.nombre ASC

Si agrupo por el id o nombre de diseño me suma todas las unidades de todas las tallas, si agrupo por id del producto tal y como muestro arriba me salen tantas líneas por diseño como tallas tiene ese producto pero la suma de las unidades por talla está correcta.
Lo ideal sería que en una sola línea apareciese el nombre del diseño y cada talla con la suma de unidades que quedan dentro del almacen.

Gracias de antemano y un saludo!

Última edición por SusoX; 08/10/2009 a las 10:57