teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

配列に格納

2020/06/21 01:16

投稿

yoshi11
yoshi11

スコア2

answer CHANGED
@@ -1,10 +1,36 @@
1
1
  ```ruby
2
+ @user = current_user.id
2
3
  con = ActiveRecord::Base.connection
4
+ sql = "SELECT
3
- @result = con.select_all("SELECT DATE_FORMAT(start_time, '%Y-%m-%d') as start_time, SUM(estimated_time), SUM(actual_time) FROM tasks GROUP BY DATE_FORMAT(start_time, '%Y-%m-%d')")
5
+ DATE_FORMAT(start_time, '%Y-%m-%d') as start_time, SUM(estimated_time), SUM(actual_time)
6
+ FROM
7
+ tasks
8
+ WHERE user_id = #{@user}
9
+ GROUP BY DATE_FORMAT(start_time, '%Y-%m-%d')"
4
- @result_hash = @result.to_hash
10
+ @result = con.select_all(sql)
5
11
 
6
- [{"start_time"=>"2020-05-10", "SUM(estimated_time)"=>2.0, "SUM(actual_time)"=>3.0}, {"start_time"=>"2020-05-20", "SUM(estimated_time)"=>2.0, "SUM(actual_time)"=>3.0}, {"start_time"=>"2020-06-08", "SUM(estimated_time)"=>1.0, "SUM(actual_time)"=>1.0}]
12
+ # output
13
+ [{"start_time"=>"2020-05-10", "SUM(estimated_time)"=>2.0, "SUM(actual_time)"=>3.0}, {"start_time"=>"2020-05-20", "SUM(estimated_time)"=>2.0, "SUM(actual_time)"=>3.0}, {"start_time"=>"2020-06-08", "SUM(estimated_time)"=>1.0, "SUM(actual_time)"=>1.0}
7
14
 
15
+ # Chart.jsで表示するため、viewsで配列に変更
16
+ <% a = [] %>
17
+ <% b = [] %>
18
+ <% c = [] %>
19
+ <% @result.each do |f| %>
20
+ <% a.push f['start_time'] %>
21
+ <% b.push f['SUM(estimated_time)'] %>
22
+ <% c.push f['SUM(actual_time)'] %>
23
+ <% end %>
24
+
25
+ # output
26
+ a
27
+ ["2020-05-10","2020-05-16","2020-05-20","2020-06-05","2020-06-08","2020-06-29"]
28
+ b
29
+ [2.0, 2.0, 2.0, 3.0, 1.0, 1.0]
30
+ c
31
+ [3.0, 3.0, 3.0, 3.0, 1.0, 1.0]
32
+
33
+
8
34
  ```
9
35
  こちらの記事を参考にしながら、日別予定合計値と実績合計値を出力出来ました
10
36