【发布时间】:2015-05-13 13:35:57
【问题描述】:
我正在使用chartkick 和groupdate 来构建图表:
line_chart @product.stocks.group_by_date(:date).sum(:quantity)
这工作正常,但我得到了错误的数据,因为在 stocks 表中,quantity 取决于另一列 stock_in,即 boolean。
-
quantity不能存储为负数,仅支持正数。 - 在检索
quantity时,我们检查stock_in布尔值以计算产品数量的总和
示例:
product_id | quantity | stock_in | date
1 32 true 13-06-2015
1 8 true 13-06-2015
1 10 false 13-06-2015
这里的数量是这样计算的:32 + 8 - 10 = 30
使用时
line_chart @product.stocks.group_by_date(:date).sum(:quantity)
日期 13-06-2015 的数量总和是 40,这是错误的
我该如何解决?比如:
line_chart @product.stocks.group_by_date(:date).sum { |s| s.stock_in? ? s.quantity : -1 * s.quantity }
【问题讨论】:
-
您使用的是什么数据库? MySQL? Postresql?
标签: sql ruby-on-rails postgresql activerecord rails-activerecord