chartkick を使用して、過去 1 年間のインバウンドおよびアウトバウンドのマテリアル フローの合計を追跡する複数系列の折れ線グラフを表示しようとしています。
クエリは、次のようなものを生成する必要があります。
SELECT SUM(ship_total_net_weight) AS sum_ship_total_net_weight,
month(ship_date) AS month_ship_date, year(ship_date)
AS year_ship_date
FROM [Downstream]
WHERE is_active = 1 AND from_company_id = 89
AND
(ship_date BETWEEN '2014-06-15 18:15:26.196'
AND '2015-06-15 18:15:26.196')
AND (to_company_id <> 89)
GROUP BY month(ship_date), year(ship_date)
order By year(ship_date), month(ship_date)
私のチャートキックコードは次のとおりです。
<%= line_chart [
{name: "Inbound", data: Downstream.where(:to_company_id => current_user.company_id, :ship_date => 1.year.ago..Time.now).where('from_company_id <> ?', current_user.company_id ).group('month(ship_date), year(ship_date)').sum(:ship_total_net_weight)},
{name: "Outbound", data: Downstream.where(:from_company_id => current_user.company_id, :ship_date => 1.year.ago..Time.now ).where('to_company_id <> ?', current_user.company_id ).group('month(ship_date), year(ship_date)').sum(:ship_total_net_weight)}
] %>
チャート キックから得た結果は、2013 年 12 月 31 日と 2014 年 12 月 31 日の 2 つのデータ ポイントだけを含む各系列の線です。
上記の SQL をデータベースに対して実行すると、2014 年 6 月から 2015 年 2 月までの 9 件の結果が生成されます。
データセットが異なるのはなぜですか? チャートキックの構文が間違っていますか? 何らかの方法でクエリを変更する必要がありますか?
事前に助けてくれてありがとう!