【发布时间】:2015-05-19 14:19:47
【问题描述】:
所以我需要生成一些仪表板,而这些仪表板中的大多数都依赖 MySQL 中的求和查询来工作。
这是模型中的 rails 查询:
def self.search_three(dyear)
find_by_sql("SELECT quantity, model,
SUM(IF(status = 'Completed',quantity,0)) AS Comp,
SUM(IF(status = 'Shipped',quantity,0)) AS Ship,
SUM(IF(status = 'Cart Submitted',quantity,0)) AS CS,
SUM(quantity) AS total
FROM orders
WHERE YEAR(needby) = '#{dyear}'
GROUP BY model")
end
它可以工作,但问题是 rails 控制台中的输出不是我期望的仪表板输出。
[#, #, #] 如果我将 dyear(这是来自其他地方的输入)分配给 2015 年,则输出。
但是,当我在 MySQL 工作台中这样做时:
SELECT quantity,
SUM(IF(status = 'Completed',quantity,0)) AS Comp,
SUM(IF(status = 'Shipped',quantity,0)) AS Ship,
SUM(IF(status = 'Cart Submitted',quantity,0)) AS CS,
SUM(quantity) AS total
FROM orders
WHERE YEAR(needby) = '2015'
GROUP BY model
我明白了
{| !数量 || !Comp ||!船舶|| !CS || !全部的 |- |40 || 8810 || 0 || 1081 || 19181 ||连接器 |- |118 || 318 || 0 || 0 || 955 ||欧盟线 |- |256 || 548 || 0 || 0 || 3944 ||美国线 |}
我需要图表显示的是总列,而图表将显示的是上述不正确的数量。
如何让 rails 查询使用 AS 总数而不是第一列作为输出?
【问题讨论】:
-
我猜 mediawiki 表格布局的东西不起作用。最重要的是,rails 查询使用数量下的第一列,其值为 40,118 和 256,而不是使用作为所有这些数量总和的总数。如何让它使用查询的总列(这是一个临时列)。
标签: mysql ruby-on-rails ruby-on-rails-4 activerecord rails-activerecord