Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-11-2019
Jose Roman Jose Roman is offline
Miembro
 
Registrado: jul 2006
Ubicación: Colombia
Posts: 361
Poder: 18
Jose Roman Va por buen camino
Suma duplicada consulta Mysql

Cordial saludo,
Tengo las siguientes tablas en Mysql:

Código:
mysql> SELECT ID_PROD,DESCRIP FROM PRODUCTOS;
+---------+------------------+
| ID_PROD | DESCRIP          |
+---------+------------------+
| 001     | POKER            |
| 002     | AGUILA           |
| 003     | GASEOSA          |
| 004     | VIEJO DE CALDAS  |
| 005     | VIEJO DE CALDAS  |
| 006     | BLANCO DEL VALLE |
+---------+------------------+
6 rows in set (0.00 sec)

mysql> SELECT ID_PROD,VR_PUBLI FROM PROD_PREC;
+---------+----------+
| ID_PROD | VR_PUBLI |
+---------+----------+
| 001     |     8000 |
| 002     |     8000 |
| 003     |     3500 |
| 004     |   110000 |
| 005     |    60000 |
| 006     |    50000 |
+---------+----------+
6 rows in set (0.00 sec)

mysql> SELECT FECHA,PRODU,UNDS FROM BARRA;
+--------+-------+------+
| FECHA  | PRODU | UNDS |
+--------+-------+------+
| 191028 | 002   |    2 |
| 191028 | 005   |    5 |
| 191028 | 002   |    1 |
+--------+-------+------+
3 rows in set (0.00 sec)

mysql> SELECT FECHA,ID_PROD,E_UNDS,S_UNDS FROM INVENTARIO;
+---------------------+---------+--------+--------+
| FECHA               | ID_PROD | E_UNDS | S_UNDS |
+---------------------+---------+--------+--------+
| 2019-10-28 00:00:00 | 001     |     24 |      0 |
| 2019-10-28 00:00:00 | 002     |      4 |      0 |
| 2019-10-31 00:00:00 | 002     |      0 |      2 |
+---------------------+---------+--------+--------+
3 rows in set (0.00 sec)
Pero al realizar esta consulta:
Código:
SELECT P.ID_PROD,P.DESCRIP,V.VR_PUBLI,IFNULL(SUM(B.UNDS),0) BARRA_UNDS,IFNULL(SUM(I.E_UNDS),0) ENTRA_UNDS_INV,IFNULL(SUM(I.S_UNDS),0) SALE_UNDS_INV
FROM PRODUCTOS P 
join PROD_PREC V ON P.ID_PROD = V.ID_PROD 
LEFT join BARRA B ON P.ID_PROD = B.PRODU 
LEFT JOIN INVENTARIO I ON P.ID_PROD = I.ID_PROD
GROUP BY P.ID_PROD
Obtengo esto:
Código:
+---------+------------------+----------+------------+----------------+---------------+
| ID_PROD | DESCRIP          | VR_PUBLI | BARRA_UNDS | ENTRA_UNDS_INV | SALE_UNDS_INV |
+---------+------------------+----------+------------+----------------+---------------+
| 001     | POKER            |     8000 |          0 |             24 |             0 |
| 002     | AGUILA           |     8000 |          6 |              8 |             4 |
| 003     | GASEOSA          |     3500 |          0 |              0 |             0 |
| 004     | VIEJO DE CALDAS  |   110000 |          0 |              0 |             0 |
| 005     | VIEJO DE CALDAS  |    60000 |          5 |              0 |             0 |
| 006     | BLANCO DEL VALLE |    50000 |          0 |              0 |             0 |
+---------+------------------+----------+------------+----------------+---------------+
y deberia ser esto:
Código:
+---------+------------------+----------+------------+----------------+---------------+
| ID_PROD | DESCRIP          | VR_PUBLI | BARRA_UNDS | ENTRA_UNDS_INV | SALE_UNDS_INV |
+---------+------------------+----------+------------+----------------+---------------+
| 001     | POKER            |     8000 |          0 |             24 |             0 |
| 002     | AGUILA           |     8000 |          3 |              4 |             2 |
| 003     | GASEOSA          |     3500 |          0 |              0 |             0 |
| 004     | VIEJO DE CALDAS  |   110000 |          0 |              0 |             0 |
| 005     | VIEJO DE CALDAS  |    60000 |          5 |              0 |             0 |
| 006     | BLANCO DEL VALLE |    50000 |          0 |              0 |             0 |
+---------+------------------+----------+------------+----------------+---------------+
Como se observa se duplica el producto 002 al tener tanto en BARRA como INVENTARIO mas de dos registros con el mismo producto, que debo hacer para que la consulta de las unidades correctas?
Responder Con Cita
  #2  
Antiguo 01-11-2019
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Pero esto no es lo mismo que esto?
Responder Con Cita
  #3  
Antiguo 01-11-2019
Jose Roman Jose Roman is offline
Miembro
 
Registrado: jul 2006
Ubicación: Colombia
Posts: 361
Poder: 18
Jose Roman Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
¿Pero esto no es lo mismo que esto?
Si Casimiro, trate de borrar el anterior hilo pero no supe como, en este inclui tanto las tablas como los datos que poseen para mayor comprension de la persona que me pueda ayudar. Brindo mis disculpas al foro por haber duplicado el tema.
Responder Con Cita
  #4  
Antiguo 01-11-2019
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Los hilos se pueden borrar durante los primeros 30 minutos de su creación, luego no se pueden borrar.
Ya que no ha participado nadie más en el anterior, pondré un mensaje de enlace a éste.
Responder Con Cita
  #5  
Antiguo 01-11-2019
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Creo que tu consulta será más fácil hacerla en un stored procedure.
Responder Con Cita
  #6  
Antiguo 01-11-2019
orodriguezca orodriguezca is offline
Miembro
 
Registrado: ene 2009
Posts: 221
Poder: 16
orodriguezca Va por buen camino
En el GROUP BY se deberían incluir todas las columnas que no están siendo utilizadas por una función agregada, En este caso:

Código SQL [-]
SELECT P.ID_PROD,P.DESCRIP,V.VR_PUBLI,IFNULL(SUM(B.UNDS),0) BARRA_UNDS,IFNULL(SUM(I.E_UNDS),0) ENTRA_UNDS_INV,IFNULL(SUM(I.S_UNDS),0) SALE_UNDS_INV
FROM PRODUCTOS P 
join PROD_PREC V ON P.ID_PROD = V.ID_PROD 
LEFT join BARRA B ON P.ID_PROD = B.PRODU 
LEFT JOIN INVENTARIO I ON P.ID_PROD = I.ID_PROD
GROUP BY 
  P.ID_PROD, 
  P.DESCRIP,
  V.VR_PUBLI
Responder Con Cita
  #7  
Antiguo 01-11-2019
Jose Roman Jose Roman is offline
Miembro
 
Registrado: jul 2006
Ubicación: Colombia
Posts: 361
Poder: 18
Jose Roman Va por buen camino
Gracias por tu ayuda me funciono
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Duda con suma en mysql LuisMiguel MySQL 3 15-08-2012 18:41:33
Consulta Mysql Suma entre rango de fechas kaeltas MySQL 4 22-06-2012 21:30:44
Suma duplicada... Jose Roman SQL 8 29-01-2009 21:04:39
Consulta mysql que saca la suma y el iva de un producto kaeltas MySQL 1 13-12-2008 20:36:59
suma de una columna en mysql coletaun MySQL 5 09-01-2006 14:29:38


La franja horaria es GMT +2. Ahora son las 15:30:47.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi