PDA

Ver la Versión Completa : Precios de oferta


seoane
03-06-2008, 23:43:23
Hoy me ha surgido la siguiente duda. Si tengo una tabla con artículos (Código, Precio) y otra con ofertas (Código_Articulo, Fecha_Inicio, Fecha_Fin, Precio_Oferta), ¿se podría hacer una sola consulta sql que devolviera cada articulo con su precio, y en caso de estar dentro del período de oferta, devolver su precio de oferta?

No soy un experto en sql, por eso solo se me ocurre hacer dos consultas una que me devuelva los precio normales y otra que me devuelva los precios en oferta para el día de hoy y, por código, actualizar los precios de la primera con los de la segunda.

Pero como ya dije al principio, lo que me gustaría saber es si se puede hacer todo en una sola consulta. ¿Algunos de los expertos que hay por aquí me puede aclarar esta duda? :p

eduarcol
04-06-2008, 01:14:48
No soy experto, pero como dicen por ahi esto es lo que hay.

No creo que funcione pero alguna idea debe aportar al caso ;)

select P.Codigo, Case P.Precio
when (Select Count(*) from ofertas where fechaI >= :fecha and fechaF <= :fecha) > 0 then
(Select Precio_Oferta from ofertas where fechaI >= :fecha and fechaF <= :fecha)
else P.Precio
end PrecioVenta from articulos

poliburro
04-06-2008, 02:53:23
Select Artículos.Codigo, Articulos,Precio, isnull(Precio_Oferta,Articulos,Precio) PRecio_Oferta
From Articulos As Articulos
Left Join (
Select Codigo_Articulo,Precio_Oferta
From Ofertas
Where Fecha_Inicio >= Now And
Fecha_Fin <= Now
) Ofertas
On Articulos.Codigo = Ofertas.Codigo_Articulo

seoane
04-06-2008, 13:31:09
:eek: Sin palabras, muchas gracias poliburro. Gracias también a ti eduarcol.

PD: Voy a tener que estudiar un poco de SQL :o

ContraVeneno
04-06-2008, 15:00:49
jojo, que cosas.

Yo no tengo tabla de artículos y ofertas, pero esta solución de Edgar me va a ayudar mucho en un planteamiento muy similar en un proceso de registro de mano de obra.

Así que yo también agradezco el aporte. :D

poliburro
04-06-2008, 20:39:38
Amigos, A mi me divierte elaborar consultas muy rebuscadas y complejas, Así que cuando gusten les echo la mano.