我目前正在开展一个有趣的项目。除此之外,我还有其他许多特定的表格。
一个包含将要发生或已经发生的事件。其他包含您可以想象的任何物品的销售,让我们在网上售票处买票。
我想回顾过去,如果一个事件以某种方式影响营业额。因此,我希望在事件发生之前提前2天查看。并在活动开始后5天看到其结果。
我渴望的结果看起来......像这样:
这就像我能想到的最大的简化,希望它已经足够了。
我已经尝试过这样的事了:
Where event.Date = values.Date
or event.Date = values.Date - 2
or event.Date = values.Date - 1
or event.Date = values.Date + 1
......依此类推,但它不起作用,让我想象一下,我不想过去2天回来,过去5天就会回来#34;但是90天和60天。这需要很长时间来设置,所以我认为应该有一个更聪明的方式。请帮忙! 谢谢!
答案 0 :(得分:1)
select e.date as date_event, e.event, v.date as date_sold, v.sold * v.price
from event as e inner join values as v
on v.date between e.date - interval '2 days'
and e.date + interval '5 days'
我可能在日期数学上稍微弄错了PostgreSQL语法,但你明白了。