Foros Club Delphi

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

seoane 03-06-2008 23:43:23

Precios de oferta
 
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 ;)

Código SQL [-]
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

Código SQL [-]

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.


La franja horaria es GMT +2. Ahora son las 12:40:03.

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