Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Sintaxis SQL (https://www.clubdelphi.com/foros/showthread.php?t=94278)

Jose Roman 31-10-2019 20:24:24

Sintaxis SQL
 
Cordial saludo,
En una tabla MySQL tengo las siguientes tablas:
PRODUCTOS con los campos ID_PROD,DESCRIP
PROD_PREC (precio de los productos) con los campos ID_PROD,VR_PUBLI
BARRA (ventas del dia) con los campos PRODU, UNDS
INVENTARIO con los campos ID_PROD,S_UNDS

Al realizar esta consulta:
Código SQL [-]
SELECT P.ID_PROD,P.DESCRIP,V.VR_PUBLI,IFNULL(SUM(B.UNDS),0) OUT_UNDS,I.S_UNDS 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 = (SELECT M.ID_PROD FROM INVENTARIO M WHERE M.ID_PROD = P.ID_PROD ORDER BY FECHA DESC ) GROUP BY P.ID_PROD

Me da lo siguiente:



El error esta en S_UNDS que me esta sumando en total y no muestra por producto:



No se como hacer para que muestre las unidades correctas como en la imagen anterior.

Gracias

Casimiro Notevi 31-10-2019 20:58:17

Esto es "raro":


Código SQL [-]
LEFT JOIN INVENTARIO I ON P.ID_PROD = (SELECT M.ID_PROD FROM INVENTARIO M WHERE M.ID_PROD = P.ID_PROD ORDER BY FECHA DESC ) GROUP BY P.ID_PROD

Jose Roman 31-10-2019 21:14:11

Bueno te comento, S_UNDS es el saldo de unidades que hay en el inventario donde hay entradas y salidas y este campo arroja el saldo, este tiene como clave primaria FECHA y aqui trato de seleccionar la ultima fecha registrada de cada producto, la consulta deberia darme:
POKER - 24
AGUILA - 4

Pero arroja 24 en cada una.

Jose Roman 31-10-2019 21:24:31

Despues de mucho intentar lo logre:


Código SQL [-]
SELECT P.ID_PROD,P.DESCRIP,V.VR_PUBLI,IFNULL(SUM(B.UNDS),0) OUT_UNDS,I.S_UNDS 
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 
ORDER BY I.FECHA DESC






Si alguien ve un error me ayuda con solucionarlo

Casimiro Notevi 01-11-2019 14:48:19

Este hilo continúa aquí...


La franja horaria es GMT +2. Ahora son las 19:37:19.

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