Hola,
Posiblemente lo puedas realizar de la siguiente forma...
Código:
-- 1)
select distinct a.codigo,
(
select top 1 b.precio
from precios b
where a.codigo = b.codigo and a.oferta = b.oferta
order by b.fecha desc
) precio
from precios a
where a.oferta = 1
go
Código:
-- 2)
select distinct a.codigo, a.precio
from precios a
inner join
(
select codigo, oferta, max(fecha) as ultima_fecha
from precios
group by codigo, oferta
) b on a.codigo = b.codigo and a.oferta = b.oferta
where a.fecha = b.ultima_fecha and a.oferta = 1
go
Las dos instrucciones deberían funcionar para hacer lo mismo.
No estoy seguro cual sería la mejor, tampoco sé si existe una forma más adecuada.
Saludos,
Este texto está de colores, :) .