Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/05/2010, 10:26
Avatar de educlon
educlon
 
Fecha de Ingreso: octubre-2003
Ubicación: Buenos Aires
Mensajes: 35
Antigüedad: 21 años, 4 meses
Puntos: 0
Sumar datos de varias tablas

Hola, necesito pedirles ayuda a ver si me pueden dar una mano con este asunto:

Tengo las siguientes tablas:

MARCAS
| id | marca |
| 1 | Garmin |
| 2 | Sony |
| 3 | Linksys |

PRODUCTOS
| id | id_marca | modelo | descripcion |
| 1 | 3 | RJ654 | Router |
| 2 | 1 | GJ655 | GPS |
| 3 | 2 | NJ656 | Notebook |

STOCK
| id | id_prod | cantidad |
| 1 | 1 | 10 |
| 2 | 1 | 20 |
| 3 | 1 | 10 |
| 4 | 2 | 30 |
| 5 | 2 | 20 |

ITEMS_VENTA
| id | id_producto | cantidad |
| 1 | 1 | 3 |
| 2 | 1 | 1 |
| 3 | 1 | 4 |
| 4 | 2 | 3 |
| 5 | 2 | 2 |

En la tabla STOCK se van agregando las cantidades de los productos a medida que ingresan al local, y en la tabla ITEMS_VENTA se van agregando los mismos productos que se venden.

Necesito hacer una consulta que me traiga todos los datos de la tabla PRODUCTOS, la marca y la suma de las cantidades que estan en las tablas STOCK e ITAMS_VENTAS, de tal forma que el resultado sea el siguiente:


| id | id_marca | modelo | descripcion | marca | cant_stock | cant_vendida | stock_actual |
| 1 | 7 | ABC123 | ROUTER | LINKSYS | 40 | 8 | 32 |
| 2 | 3 | DEF456 | DISCO | WDIGITAL | 50 | 5 | 45 |

He logrado hacer las sumas, pero una de ellas me da mal:

SELECT productos.*, marcas.marca, IFNULL(SUM(stock.cantidad),0) AS cant_stock, IFNULL(SUM(items_venta.cantidad),0) AS cant_vendida, (cant_stock-cant_vendida) AS stock_actual FROM productos LEFT JOIN stock ON stock.id_prod=productos.id LEFT JOIN items_venta ON items_venta.id_producto=productos.id LEFT JOIN marcas ON productos.id_marca=marcas.id GROUP BY stock.id_prod;

Les agradezco cualquier ayuda que me puedan brindar.

Saludos...