CookBook

SQLビルダを利用したクエリ作成例

投稿日:

この CookBook では、 intra-mart Accel Platform 2020 Spring から利用可能になった、ViewCreator の「SQLビルダ」機能を活用し、既存のクエリ編集では表現することができなかったクエリ(SQL)の作成例を紹介します。

SQLビルダの詳細については下記ドキュメントを参照してください。

完成イメージ

テーブルに登録されている情報

上記テーブルを参照して、年齢が同じ人の名前を一列に表示するクエリを作成し、データ参照のリスト集計を表示した例

レシピ

  1. サンプルデータの用意
  2. クエリビルダで自己参照SQLクエリを作成してみる
  3. SQLビルダで自己参照SQLを記述
  4. 作成したクエリからデータ参照作成を開く

1. サンプルデータの用意

まずは完成イメージにあるテーブルを用意します。

テナント管理者でログインしてください。

グローバルナビから「サイトマップ」に遷移し、「テナント管理」→「データベース操作」をクリックしてください。
ここに、以下の SQL (DDL) を入力し、実行してください。

※ 以下は PostgreSQL での SQL です。他データベースをご利用の場合は、別途テーブルを作成する SQL を実行してください。

上記 SQL (DDL) を実行した後に、以下の SQL (INSERT文) を入力し、実行してください。

※ 以下は PostgreSQL での SQL です。他データベースをご利用の場合は、別途 SQL を実行してください。

2. クエリビルダで自己参照するクエリを作成してみる

はじめに既存のクエリビルダで、自己参照するクエリ作成を試してみましょう。
目標としては、テーブルに登録されている年齢が同じ人の名前を一列で取得するようなクエリを作成することです。

サイトマップから 「ViewCreator」 -> 「クエリ編集」 -> 「新規」 をクリックしてください。

「cb187248」テーブルをダブルクリックして、テーブルを追加してください。

名前と年齢を取得するために、「cb187248」テーブルの「name」,「age」をダブルクリックしカラム一覧に追加してください。

「cb187248」テーブルに対して、自己参照を行うために、もう一つ同じテーブルを追加する必要があります。
もう一度「cb187248」テーブルをダブルクリックして、テーブルを追加してください。

同一テーブルを追加する場合、本来であれば別名を付ける必要がありますが、クエリビルダではそのような機能を提供していないため、同一テーブルの追加をすることができないようになっています。

このように、クエリビルダでは自己参照するクエリを作成することができませんでした。
ここからは、SQLビルダを使い実現してみましょう。
クエリビルダからSQLビルダへ切り替える場合、途中まで作成していた情報はSQLとして保持されますので、この画面のまま下記の操作を続けてみてください。

3. SQLビルダで自己参照SQLを記述

ツールバーにある 「SQLで編集」をクリックしてください。

SQLビルダに切り替える直前のクエリビルダで作成していた内容が、SQLとして初期表示されます。

画面中央のエディタ部分に、下記のSQLを参考に初期表示されたSQLを編集してください。

「カラム一覧に反映」ボタンをクリックしてください。

キャプション名を自由に編集し、ツールバーの保存をクリックしてください。

4. 作成したクエリからデータ参照作成を開く

サイトマップから 「ViewCreator」 -> 「クエリ編集」 をクリックしてください。
手順2で保存したクエリ名の「データ参照作成」列にある「リスト集計を作成する」アイコンをクリックしてください。

「プレビュー」をクリックすると、年齢が同じ人の名前を一列に表示するSQLをクエリとして保存できたことが確認できます。

おわりに

今回紹介したように、SQLビルダを利用することで自己参照を使ったSQLを記述し、ViewCreator のクエリとして登録することができます。(他にヒント句やUNION句などについても、SQLビルダを利用することで記述できます。)
クエリとして登録した後は、既存のクエリと同じ要領でデータ参照を作成できますので、ぜひ運用に合わせて活用してみてください。

-CookBook
-

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

no image

テナント環境セットアップでテナント固有の属性を登録する。

この CookBook では以下の方法を紹介します。 テナント環境セットアップでテナント固有の属性を登録する方法。 システム管理者のテナント管理画面で、テナント固有の属性を編集する方法。 今回は「外部 …

no image

IM-BloomMaker Modifier の使い方

このCookBookでは、2020 Summer から利用可能になった環境変数($env)に含まれる「modifier」について紹介しています。 modifier は、同じく 2020 Summer …

IM-BloomMaker で作成した画面で、入力項目の値によってエレメントの表示・非表示を切り替える方法

このCookBookでは、IM-BloomMakerで入力系エレメントの入力値によってエレメントの表示/非表示を切り替える方法について紹介しています。 実際にサンプル画面を作成しながら解説を行います。 …

no image

IM-LogicDesignerのIM-ContentsSearch コンテンツ登録タスク利用例

このCookBookでは、IM-LogicDesignerのIM-ContentsSearch コンテンツ登録タスクの利用例を紹介します。 IM-BISで作成したワークフローの案件終了処理で、画面項目 …

no image

Forma標準アプリとIM-LogicDesignerを利用してBISワークフローの一括承認画面を作成する

このCookBookでは、Forma標準アプリとLogicDesignerを利用して、BISワークフローの一括承認画面を作成する方法を紹介します。 完成イメージ ① 承認を実施するフローとノードを設定 …