我有两张table:Client
和Document
一个client
有多个documents
| 委托方|
| - -|
| 标识符|
| 姓名|
| 文件|
| - -|
| 标识符|
| 姓名|
| 到期日期|
| 客户端ID|
到期日期格式为YYYY-MM-DD
我想返回这样一个表:
| 标识符|姓名|文档计数|过期的|30天|
| - -|- -|- -|- -|- -|
| 一个|客户端A| 10个|五个|2个|
| 2个|客户端B|八个|八个|第0页|
| 三个|客户端C|十三|第0页|10个|
现在我的代码是这样的:
Client.all.left_joins(:documents).group(:id).select('clients.*, COUNT(documents.id) AS documents_count')
我错过了最后两列。
如何获得这两列?
我试探着:
Client.all.left_joins(:documents).group(:id).select("clients.*, COUNT(documents.id) AS documents_count, COUNT(documents.expiration < #{Date.today}) AS expired")
但是过期的列返回布尔值而不是数字。
| 标识符|姓名|文档计数|过期的|
| - -|- -|- -|- -|
| 一个|客户端A| 10个|真的|
| 2个|客户端B|八个|真的|
| 三个|客户端C|十三|真的|
1条答案
按热度按时间r55awzrz1#
设置.
查询
或者简单的一个。
我不知道ruby,但从this发布,我认为你可以运行纯sql查询。