在mysql数据库中我有这样的表:
StartDate EndDate Price
01.01.2017 01.06.2017 100
02.06.2017 01.12.2017 150
在某些日子之间获得价格的最佳解决方案是什么。例如,如果我发送日期25.05.2017 as start date
和05.06.2017 as end date
,我需要在这些日期之间获得价格总和。
答案 0 :(得分:0)
试试这个
select sum(Price) as total_price from table_name
where StartDate >= 'given_startdate' and EndDate <= 'given_enddate'
答案 1 :(得分:0)
要查找重叠时段,请使用以下逻辑:
where start_1 <= end_2 and end_1 >= start_2
在你的情况下:
where startdate <= date '2017-06-05' and enddate >= date '2017-05-25'
编辑:
似乎您希望将日期范围扩展到每天一行。加入日历表(如果您没有,请创建它,您将在很多地方使用它):
select sum(price)
from mytable join calendar
on calendardate between startdate and enddate