Ver Mensaje Individual
  #4  
Antiguo 07-09-2014
Avatar de RONPABLO
[RONPABLO] RONPABLO is offline
Miembro Premium
 
Registrado: oct 2004
Posts: 1.514
Reputación: 21
RONPABLO Va por buen camino
Cita:
Empezado por anubis Ver Mensaje
Hola de nuevo.

Tengo esta sentencia sql

Código SQL [-]SELECT a.NOMBREPRODUCTO,b.CANTIDAD,c.precio from productos a ,inventarios b, precios c where a.ID_PRODUCTO=b.ID_PRODUCTO and a.ID_PRODUCTO=c.ID_PRODUCTO


Donde tengo 3 tablas, una de productos, otra de inventarios y finalmente otra de precios, en las dos primeras existe un registro por producto y por inventario, pero la de precios tiene varios precios del orden 1 a n.

En esa consulta me saca tantos registros como precios tengan los productos, por lo que si un producto tiene 3 precios me saca 3 registros y asi sucesivamente,

lo que me interesaba es que en esa misma consulta me sacara solo el ultimo precio registrado, pero no veo forma.

Alguno sabe como se puede hacer, ya busque en san google
Podría ser algo como
Código SQL [-]
SELECT 
    a.NOMBREPRODUCTO,b.CANTIDAD,c.precio,
    (select first 1 pr.precio from precios pr where pr.ID_PRODUCTO=a.ID_PRODUCTO order by fecha desc, id_precio desc) as ultimo_precio 
from productos a ,inventarios b, precios c 
where a.ID_PRODUCTO=b.ID_PRODUCTO and a.ID_PRODUCTO=c.ID_PRODUCTO

Lo malo es que con el tiempo tal vez esta consulta se vaya poniendo lenta, algo que se podría solucionar mejor con un campo en la tabla productos llamado precio_actual o algo similar el cual cambie siempre que se agregue un registro en la tabla precios
__________________
"Como pasa el tiempo..... ayer se escribe sin H y hoy con H"
Responder Con Cita