【发布时间】:2017-11-09 17:32:19
【问题描述】:
我有两张桌子,
1.items
2.festival_rents
样本记录:
items
id | name | rent
------------------------
1 | Car | 100
2 | Truck | 150
3 | Van | 200
样本记录:
festival_rents
id | items_id | start_date | end_date | rent
------------------------------------------------
1 | 1 | 2018-07-01 | 2018-07-02 | 200
2 | 1 | 2018-07-04 | 2018-07-06 | 300
3 | 3 | 2018-07-06 | 2018-07-07 | 400
表items 包含name 和rent 的项目列表。 items 表中的每个项目可能有也可能没有festival_rents。在start_date 和end_date 的日期范围内,festival_rents 表的每个项目的租金都较高。一个项目可能有多个具有不同日期范围的festival_rents。但可以肯定的是,属于同一 item 的多个 festival_rents 的日期范围不会发生冲突,并且所有日期范围都是孤立的。
我要查找的查询是,对于给定的start_date 和end_date 范围,对于items 表中的每个项目,计算总租金并显示每个项目及其计算的总租金。如果items 中的任何一个festival_rents 属于给定的start_date 和end_date,则每个项目的租金计算也应包括festival_rents。
预期结果:
输入:start_date=2018-07-01 和 end_date=2018-07-06
输出:
id | name | total_price
------------------------
1 | Car | 1100 // 1st 2 days festival rent + 1 day normal rent + last 3 days festival rent (2 * 200) + (1 * 100) + (3 * 200)
2 | Truck | 900 // 6 days normal rent (6 * 150)
3 | Van | 1400 // 5 days normal rent + 1 day festival rent (200 * 5) + (400 * 1)
【问题讨论】:
-
mysql 还是 postgresql?选择一个。
-
是的,PostgreSQL。
标签: postgresql