我已经尝试过并且未能解决这个难题,现在我正在寻找一些很好的帮助,如果有人在那里。说明:
第一张表格包含商品的原始价格。
Table1 (Sales_Data):
+---------+----------+-------+------------+
| Item_Id | Store_Id | Price | Sales_Date |
+---------+----------+-------+------------+
第二个表包含两个价格
两种价格都存储在价格中,但日期差别很大。
Table2 (Discount_Data):
+---------+----------+-------+------------+
| Item_Id | Store_Id | Price | Sales_Date |
+---------+----------+-------+------------+
现在到了大问:
答案 0 :(得分:0)
我讨厌做出一个假设,但看起来你的第二个表应该包含两个列,From_Date和To_Date。我会将Discount_Data永久别名为ddf,而Discount_Data期间价格为ddp
select sd.Item_Id,
sd.Store_Id,
sd.Price as OriginalPrice,
coalesce(ddd.Price,ddf.Price,sd.Price) as UpdatedPrice
from Sales_Data sd
left join Discount_Data ddf
on sd.Item_Id=ddf.Item_Id
and sd.Store_Id=ddf.Store_Id
and sd.Sales_Date >= ddf.From_Date
and ddf.To_Date=0
left join Discount_Data ddp
on sd.Item_Id=ddp.Item_Id
and sd.Store_Id=ddp.Store_Id
and sd.Sales_Date between ddp.From_Date and ddp.To_Date
希望有所帮助。