【发布时间】:2023-03-22 04:53:02
【问题描述】:
我需要一种方法来找出物品何时可以使用。这些物品会保留一段时间,时间长短因客户的需要而异。 我需要一种方法来找出在某个时间范围内可用的内容。
我查看了重叠和 >、
小部件表
| id | color | length | purchase_date | in_date |
|----|--------|--------|---------------|----------|
| 1 | red | 1.5 | 07/02/15 | 08/22/19 |
| 2 | red | 2 | 07/02/15 | 08/22/19 |
| 3 | blue | 1.5 | 08/15/14 | 08/22/19 |
| 4 | blue | 2 | 08/15/14 | 08/20/19 |
| 5 | green | 1.5 | 06/22/15 | 08/20/19 |
| 6 | green | 2 | 08/15/14 | 08/20/19 |
| 7 | yellow | 1.5 | 07/02/15 | 08/17/19 |
| 8 | yellow | 2 | 05/04/17 | 08/17/19 |
| 9 | purple | 1.5 | 05/04/17 | 08/30/19 |
| 10 | purple | 2 | 07/02/15 | 08/30/19 |
贷款表
| loan_id | widget_id | client_id | out_date | in_date |
|---------|-----------|-----------|----------|----------|
| 1 | 1 | 101 | 08/12/19 | 08/22/19 |
| 2 | 3 | 101 | 08/12/19 | 08/22/19 |
| 3 | 5 | 101 | 08/12/19 | 08/22/19 |
| 4 | 2 | 102 | 08/15/19 | 08/20/19 |
| 5 | 4 | 102 | 08/15/19 | 08/20/19 |
| 6 | 10 | 103 | 08/16/19 | 08/20/19 |
| 7 | 8 | 104 | 08/15/19 | 08/17/19 |
| 8 | 9 | 104 | 08/15/19 | 08/17/19 |
| 9 | 1 | 105 | 08/23/19 | 08/30/19 |
| 10 | 2 | 105 | 08/23/19 | 08/30/19 |
| 11 | 7 | 106 | 08/23/19 | 08/28/19 |
| 12 | 3 | 106 | 08/23/19 | 08/28/19 |
| 13 | 5 | 107 | 08/18/19 | 08/22/19 |
| 14 | 8 | 107 | 08/18/19 | 08/22/19 |
| 15 | 1 | 101 | 09/02/19 | 09/09/19 |
| 16 | 7 | 101 | 09/02/19 | 09/09/19 |
| 17 | 6 | 101 | 09/02/19 | 09/09/19 |
| 18 | 8 | 108 | 08/26/19 | 09/06/19 |
| 19 | 10 | 108 | 08/26/19 | 09/06/19 |
| 20 | 4 | 108 | 08/26/19 | 09/06/19 |
| 21 | 9 | 109 | 08/22/19 | 08/27/19 |
| 22 | 2 | 109 | 08/22/19 | 08/27/19 |
| 23 | 3 | 110 | 09/04/09 | 09/11/19 |
| 24 | 5 | 110 | 09/04/19 | 09/11/19 |
该项目不能在签入的同一天签出。 因此,例如,我需要检查 8/21 和 8/26(如果有)之间可用的内容以及 9/8 和 9/14 之间可用的内容。 我们正在与数百家合作,并希望提前几周或几个月开始预订,目前是一两周。 我暂时只需要从小部件表中获取链接到贷款表 widget_id 的 ID。
【问题讨论】:
-
请尽量减少示例。是否真的有必要查看每张表的 24 条记录才能理解您的问题?此外,请添加预期的输出!
-
您必须使用时间戳范围数据类型在表上定义排除约束。
ALTER TABLE loan ADD CONSTRAINT widget_time_idx EXCLUDE USING gist (widget_id WITH =, (tstzrange(in_date, out_date)) WITH &&); -
是的,它显示了数据的可变性
标签: postgresql