Access「完了したRedmineのチケット数を日別にカウントする」集計クエリ

「Redmineのチケット完了数を日別にカウントする」Microsoft Access(以下 Access)の集計クエリを紹介します。

前回は、チケット作成数を日別にカウントする集計クエリを紹介しました。

Access「作成されたRedmineのチケット数を日別にカウントする」集計クエリ
「Redmineのチケット作成数を日別にカウントする」Microsoft Access(以下 Access)の集計クエリを紹介します。Accessファイルには、MySQL(Redmine)のリンクテーブルが作成されているものとします。

今回も、Accessファイルには、MySQL(Redmine)のリンクテーブルが作成されているものとします。リンクテーブルの作成方法については次の記事が参考になります。

AccessをMySQL(Redmine)に接続する方法
ODBCドライバーを使用して、Microsoft Access(以下 Access)をMySQL(Redmine)に接続する方法を紹介します。Accessに、MySQL(Redmine)の各テーブルをデータごと取り込んだり、リンクテーブルを作成してクエリーで集計することができるようになります。

スポンサーリンク

集計クエリのSQL文

集計クエリのSQL文は次の通りです。

MySQL(Redmine)のリンクテーブルがあるAccessファイルに、選択クエリを作成して、
[ファイル]リボンの[表示] > [SQLビュー]から貼り付けて使用できます。

デザインビューに切り替えると次のように表示されます。

”集計したいトラッカー名”と”集計したいプロジェクト名”は、ご使用のRedmineにあわせて変更してください。

SQL文のポイント

簡単に、このSQL文のポイントを解説したいと思います。

チケットの完了日時は「issues」テーブルの「closed_on」フィールドに日付/時刻型で保存されています。日付/時刻型では、データを倍精度浮動小数点(小数点15位まで)として保存していて、整数部分が日付、小数点部分が時刻を表しています。

CDate(Int([issues].[closed_on]))では、先ず、Int関数で小数点以下を切り捨て、整数部分をCdate関数で日付型(Date)に変換しています。この値をGROUP BYに指定することで、日付別の集計としています。

なお、「closed_on」フィールドは、チケットが再オープンされた時にはクリアされず、再度クローズされた時に更新される仕様になっています。ですので、「closed_on」フィールドを「is not null」の条件で集計すると、再オープンされているチケットも完了としてカウントしてしまいます。正確にカウントするため、ステータスの完了フラグも確認しています。

issues、trackers、projectsの各テーブルのフィールドについては、前回の記事に説明がありますので、そちらをご覧ください。

Access「作成されたRedmineのチケット数を日別にカウントする」集計クエリ
「Redmineのチケット作成数を日別にカウントする」Microsoft Access(以下 Access)の集計クエリを紹介します。Accessファイルには、MySQL(Redmine)のリンクテーブルが作成されているものとします。

今回登場した「issue_statuses」テーブルの各フィールドは次のようになっています。

「issue_statuses」テーブルのフィールド一覧

このテーブルには、チケットのステータスに関する設定内容があります。

項目名 説明
id ステータスのid
name ステータス名
is_closed 1:完了ステータス
0:完了以外のステータス
Position ステータスの表示順
default_done_ratio 進捗率、チケットの進捗率をステータスと連動させる場合に使用

この記事のまとめ

今回は「チケットの完了数を日別にカウントする」集計クエリを紹介しました。

このようにAccessファイルにMySQL(Redmine)のリンクテーブルを作成すれば、面倒なプログラムを組むことなく、データベース言語(SQL)だけで色々集計できます。

また、Accessで集計した結果は、Excelと連携して簡単にグラフ化することもできます。
今度、この方法について紹介したいと思います。