4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

CDataを使ってkintoneをRDBのように扱う

Last updated at Posted at 2020-01-31

え?kintoneってテーブル(アプリ)結合できないの?あかんやん。
他のツール使ってもいいからなんとかできないの?
という方向けの記事です。

やること

kintoneの2つのアプリ情報をまとめて一覧表示します。(標準機能ではできない)

今回はCData Excel Add-in for kintoneを使います。
CData Excel Add-in for kintoneの詳細については以下の記事を参考にしてください。
CData Software ハンズオン(Excelからkintoneのデータを取得&登録)

前提

案件管理アプリと活動履歴アプリがあり、案件と活動は1:Nで紐づきます。

  • 案件管理アプリの構成
    • 顧客名
    • 案件名
    • 費用
  • 活動履歴アプリの構成
    • 活動日(活動数=レコード数が取りたいので、今回の例では何でも良い)

このとき顧客ごとの案件名、費用、活動数、コスパ(費用/活動数)を一覧にします。

kintoneの準備

まずはアプリストアの営業支援パックをインストールします。
3つアプリがインストールされますが、利用するのは案件管理と活動履歴の2つです。
案件管理には10レコード、活動履歴には20レコードが登録されています。
cdata1.png
cdata2.png

CData Excel Add-in for kintoneの準備

以下の記事を参考にCData Excel Add-inをインストールして、接続設定まで完了させてください。
CData Software ハンズオン(Excelからkintoneのデータを取得&登録)

実行

さっそく実行しましょう。
Excelアプリケーションを起動して、空白のブックを開きます。
リボンのCDATAタブを選択し、「取得元Kintone」アイコンをクリックします。
クエリーに以下のSQLを貼り付けて、OKをクリックすると・・・

SELECT
  matter.顧客名, matter.案件名, matter.合計費用,
  activity.活動数, ROUND(matter.合計費用/activity.活動数) AS コスパ
FROM [CData].[Kintone].[案件管理(営業支援パック)] AS matter
  INNER JOIN (
    SELECT
      顧客名, 案件名, COUNT(*) AS 活動数
    FROM [CData].[Kintone].[活動履歴(営業支援パック)]
    GROUP BY 顧客名, 案件名) AS activity
  ON matter.顧客名 = activity.顧客名 AND matter.案件名 = activity.案件名
  ORDER BY コスパ DESC

※過去に営業支援パックをインストールしていた方はアプリ名を変更する必要があるかもしれません。
 アプリ名は「取得元Kintone」アイコンクリック後のテーブル項目を参考にしてください。

できました!
貼り付けたSQLはテーブル名だけが特殊ですが、他は通常のSQLです。これはすごい。
cdata3.png
案件管理アプリの情報をベースに、活動履歴アプリの活動数(レコード数)、コスパ(費用/活動数)を表示しています。

まとめ

CDataを使えばRDBとしてkintoneを扱えるので2つ以上のアプリを結合することも可能です。
今回はわかりやすいように2つで紹介してみました。

4
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?