データの集計について
2019-09-04 17:37
CELFのSQLではSUMが利用できなく、アクションにて代替手段を検討しています。
組織コード"A01"の"残業時間_分"には、組織コード"A01"を含むものすべての"残業時間_分"の合計を出力させたいと思っています。
現在は、組織コード"A01"のみの"残業時間_分"が合計されて表示されます。
同じような実装を行った方がいらっしゃいましたら、ご教授いただければ幸いです。
SUM関数にASが必要なのは、わからなかったです。どうもありがとうございました。
そこで、下記のようにSQLを書いてみたのですが、保存する際にエラーとなってしまいます。
SELECT 所属組織コード,
年月日,
SUM(残業時間_分) OVER(PARTITION 所属組織コード) AS 残業時間_分
FROM 労務管理_月次確定実績履歴
GROUP BY 年月
ORDER BY 所属組織コード,年月日
教えていただいた通りにSUM関数にASをつけて所属組織コード毎に集計をするようにしてみたのですが、何が間違っているのでしょうか。
CELFのSQLにお詳しい方、いらっしゃいましたらご教授いただければ幸いです。
回答を投稿するにはログインが必要です。
おはようございます。
CELFのSQL(MySQL)ではwindow関数「OVER()」はサポートしていないようです。
SUM()+GROUP BYで集計対象カラムを出力するよりないようです。
また、SUM()のASにカラム名と同じ名前は使えません。どうせ表示されるわけでもないので、A, B,などでも構わないと思います。
SQLで要求を満たせなければ、あとはアクションで調整することになると思います。
CELFのSQL(MySQL)ではwindow関数「OVER()」はサポートしていないようです。
SUM()+GROUP BYで集計対象カラムを出力するよりないようです。
また、SUM()のASにカラム名と同じ名前は使えません。どうせ表示されるわけでもないので、A, B,などでも構わないと思います。
SQLで要求を満たせなければ、あとはアクションで調整することになると思います。
こんにちは。
アクションでも可能だと思いますが、以下のようなSQLでできると思います。
CELFの場合SUM(), SUBSTRING()など関数を使う場合は「AS 別名」が必須です。
SELECT SUBSTRING(所属組織コード, 1, 3) AS A, 年月日, SUM(残業時間_分) AS B
FROM 労務管理_月次確定実績履歴
GROUP BY SUBSTRING(所属組織コード, 1, 3), 年月日
アクションでも可能だと思いますが、以下のようなSQLでできると思います。
CELFの場合SUM(), SUBSTRING()など関数を使う場合は「AS 別名」が必須です。
SELECT SUBSTRING(所属組織コード, 1, 3) AS A, 年月日, SUM(残業時間_分) AS B
FROM 労務管理_月次確定実績履歴
GROUP BY SUBSTRING(所属組織コード, 1, 3), 年月日