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

SELECT con SUMA de totales desde otra tabla

Estas en el tema de SELECT con SUMA de totales desde otra tabla en el foro de Bases de Datos General en Foros del Web. Hola, necesito pedirles ayuda a ver si me pueden dar una mano con este asunto: Tengo las siguientes tablas: MARCAS | id | marca | ...
  #1 (permalink)  
Antiguo 13/01/2010, 10:00
Avatar de educlon  
Fecha de Ingreso: octubre-2003
Ubicación: Buenos Aires
Mensajes: 35
Antigüedad: 20 años, 6 meses
Puntos: 0
SELECT con SUMA de totales desde otra tabla

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 | idmarca | modelo | descripcion |
| 1 | 3 | RJ654 | Router |
| 2 | 1 | GJ655 | GPS |
| 3 | 2 | NJ656 | Notebook |

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

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 la tabla STOCK.

He logrado hacerlo pero solamente me trae los datos de los productos que tienen stock, y no aparecen los que no tienen, en este caso no aparece el id de producto 2

Código:
SELECT productos.*, marcas.marca, SUM(stock.cantidad) AS cant FROM stock, productos LEFT JOIN marcas ON productos.idmarca=marcas.id WHERE stock.idprod=productos.id GROUP BY stock.idprod
| id | idmarca | modelo | descripcion | marca | cant |
| 1 | 3 | RJ654 | Router | Linksys | 30 |
| 3 | 2 | NJ656 | Notebook | Sony | 60 |

Lo que necesito es esto:

| id | idmarca | modelo | descripcion | marca | cantidad |
| 1 | 3 | RJ654 | Router | Linksys | 30 |
| 2 | 1 | GJ655 | GPS | Garmin | 0 |
| 3 | 2 | NJ656 | Notebook | Sony | 60 |


Nesesito que aparezca la cantidad en cero si es que no hay stock todo en una sola consulta. Alguien tiene idea de cómo hacerlo?

Desde ya mil gracias por la ayuda que me puedan dar

Última edición por educlon; 13/01/2010 a las 10:07
  #2 (permalink)  
Antiguo 13/01/2010, 10:06
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 9 meses
Puntos: 70
Respuesta: SELECT con SUMA de totales desde otra tabla

Cuál es tu problema de php??
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #3 (permalink)  
Antiguo 13/01/2010, 10:13
Avatar de SergeMedina  
Fecha de Ingreso: septiembre-2007
Ubicación: Guadalajara, Jalisco
Mensajes: 459
Antigüedad: 16 años, 7 meses
Puntos: 20
Respuesta: SELECT con SUMA de totales desde otra tabla

Claro que si. Se llaman "pivot tables". Se vuelven un poco complicadas escribirlas, pero son muy utiles. Te recomiendo que preguntes en el foro de MySQL.
__________________
I see dead pixels
  #4 (permalink)  
Antiguo 13/01/2010, 10:14
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Tema movido desde PHP a Bases de Datos
  #5 (permalink)  
Antiguo 13/01/2010, 10:27
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: SELECT con SUMA de totales desde otra tabla

Prueba esta

Código SQL:
Ver original
  1. SELECT p.*, m.marca, ifnull(SUM(s.cantidad),0) AS cant
  2. FROM productos p
  3. LEFT JOIN stock s ON p.id=s.idprod
  4. LEFT JOIN marcas m ON p.idmarca=m.id
  5. GROUP BY s.idprod ORDER BY p.id

No la he probado
__________________
Without data, You are another person with an opinion.
W. Edwads Deming

Última edición por huesos52; 13/01/2010 a las 10:34
  #6 (permalink)  
Antiguo 13/01/2010, 10:27
Avatar de educlon  
Fecha de Ingreso: octubre-2003
Ubicación: Buenos Aires
Mensajes: 35
Antigüedad: 20 años, 6 meses
Puntos: 0
Respuesta: SELECT con SUMA de totales desde otra tabla

Mil gracias SERGE_MEDINA, ya lo estoy analizando. Y disculpas por quivocarme de foro.

Saludos!!...

Eduardo
  #7 (permalink)  
Antiguo 13/01/2010, 10:31
Avatar de educlon  
Fecha de Ingreso: octubre-2003
Ubicación: Buenos Aires
Mensajes: 35
Antigüedad: 20 años, 6 meses
Puntos: 0
Respuesta: SELECT con SUMA de totales desde otra tabla

Mil gracias HUESOS52, esa es la consulta correcta, funciona perfectamente.

Saludos...

Eduardo

Etiquetas: select, suma, totales, tablas
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 12:51.