【发布时间】:2019-03-04 09:25:31
【问题描述】:
我的桌子上摆满了如下所示的预订:
| ID | START_DATETIME | END_DATETIME | QUANTITY |
+-----------------------------------------------------------+
| 1 | 2019-03-01 12:00:00 | 2019-03-04 12:00:00 | 3 |
| 2 | 2019-03-02 12:00:00 | 2019-03-03 12:00:00 | 1 |
| 3 | 2019-03-03 12:00:00 | 2019-03-04 12:00:00 | 1 |
| 4 | 2019-03-04 12:00:00 | 2019-03-05 12:00:00 | 2 |
我需要获取给定日期范围内每一天的数量。
以下是给定日期范围的示例:
2019-03-01 to 2019-03-06
这是预期的结果:
| DATE | QUANTITY |
+------------------------+
| 2019-03-01 | 3 |
| 2019-03-02 | 4 |
| 2019-03-03 | 5 |
| 2019-03-04 | 6 |
| 2019-03-05 | 2 |
| 2019-03-06 | 0 |
下面是如何计算结果的解释:
- 2019-03-01是预订1数量的总和
- 2019-03-02是预订1和2数量的总和
- 2019-03-03是预订1和2和3数量的总和
- 2019-03-04是预订1和3和4数量的总和
- 2019-03-05 是预订4个数量的总和
- 2019-03-06 没有预订
我尝试过各种类型的 SQL 语句,但就是无法破解。
感谢任何帮助。
【问题讨论】:
-
我已经更新了问题的格式并添加了一些新的文本来进一步阐明问题。
-
如果您不创建一个“日历表”,您将无法“破解”它,它将作为您所有日子的主表,您将从中加入您的按天预订表和团体。这里和网上都有很多例子