我在每个日期都有每个人的报告表,如下所示:
+-----+------+----------+------+------------+
| id | name | received | sent | created_on |
+-----+------+----------+------+------------+
| 1 | A | 1 | 2 | 2018-07-20 |
| 2 | B | 3 | 4 | 2018-07-20 |
| 3 | C | 5 | 6 | 2018-07-20 |
| 4 | A | 1 | 2 | 2018-07-21 |
| 5 | B | 1 | 2 | 2018-07-21 |
| 6 | C | 1 | 2 | 2018-07-21 |
| ... | ... | ... | ... | ... |
+-----+------+----------+------+------------+
鉴于我需要查询包含开始日期和结束日期的日期范围的表,我如何获得这样的结果:
[
{
"name": 'A',
"received": [1 1 ...],
"sent": [2 2 ...]
},
{
"name": 'B',
"received": [3 1 ...],
"sent": [4 2 ...]
},
{
"name": 'C',
"received": [5 1 ...],
"sent": [6 2 ...]
}
]
答案 0 :(得分:0)
DB[:reports]
.select(:name, :received, :sent)
.where(created_at: (Date.today - 4)..(Date.today))
我显然使用了可以修改的任意日期范围。
这是假设您将连接对象存储在名为DB
的常量中。您可以找到有关查询数据库here的更多信息。
如果您需要更多有关配置续集以与数据库一起使用的帮助,则可以检查gems documentation。