SQL - 如何获取过去2天和特定日期后5天的数据

时间:2018-01-30 19:29:33

标签: sql postgresql where-clause

我目前正在开展一个有趣的项目。除此之外,我还有其他许多特定的表格。

enter image description here

一个包含将要发生或已经发生的事件。其他包含您可以想象的任何物品的销售,让我们在网上售票处买票。

我想回顾过去,如果一个事件以某种方式影响营业额。因此,我希望在事件发生之前提前2天查看。并在活动开始后5天看到其结果。

我渴望的结果看起来......像这样:

enter image description here

这就像我能想到的最大的简化,希望它已经足够了。

我已经尝试过这样的事了:

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天。这需要很长时间来设置,所以我认为应该有一个更聪明的方式。请帮忙! 谢谢!

1 个答案:

答案 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语法,但你明白了。