ActiveReports for .NET 18.0J
クエリデザイナでのクエリの作成
ActiveReportsユーザーガイド > 概念 > クエリデザイナ > クエリデザイナでのクエリの作成

このトピックでは、クエリデザイナでクエリを構築するプロセスについて説明します。クエリデザイナでのクエリ構築は、以下のような簡単な手順で実行することができます。

手順1: テーブルからフィールドを追加して単純なクエリを生成する

手順2: リレーションシップを設定する(複数のテーブルを使用したクエリのみに適用可能)

手順3: 個々のフィールド、またはテーブルのオプションを設定する

手順4: クエリを実行する

手順5: クエリをプレビューする

以下の手順は、すでにページレポート、またはRDLレポートのテンプレートを追加し、データソースへの接続が済んでいることを前提とします。詳細については、「クイックスタート」、「データソースとの接続」を参照してください。
クエリデザイナにアクセスする方法については、「クエリデザイナ」を参照してください。

メモ: このトピックではReelsデータベース(Reels.mdb)のテーブルを使用しています。データの使用にはReelsデータベースへの(..\ActiveReportsNET18\Samples\Data\Reels.mdbへのアクセス権限が必要です。

クエリの作成と実行(単一テーブル)

クエリデザイナには、単一のテーブルを参照して単純なクエリを作成するのに役立つビジュアルインタフェースがあります。

下記の「クエリデザイナでクエリを作成する手順」に従ってクエリを作成すると、[SQL]ページ内に以下のクエリが表示されます。

[SQL]ページに表示されるクエリの作成結果

SQLクエリ
コードのコピー
select Movie.MovieID, Movie.Title
from Movie

クエリデザイナでクエリを作成する手順

  1. [デザイン]ページで、[データベースビュー]からMovieテーブルのMovieIDフィールドをドラッグして[選択したフィールド]パネルにドロップします。

  2. 同じテーブルから、Movie.Titleフィールドを[選択したフィールド]パネルに追加します。
  3. クエリデザイナのツールバーで、[実行]ボタンをクリックします。

    以下のような結果データが[結果]パネルに表示されます。



クエリの作成と実行(複数テーブル)

クエリデザイナには、複数のテーブルを参照してそれらのリレーションシップを設定するためのビジュアルインタフェースがあります。

以下の例では、[デザイン]ページでReelsデータベースのMovieテーブルとMovieCrewテーブルを使用した右外部結合を実装し、WHERE句を使用して結果セットにフィルタ条件を適用する方法を示します。クエリデザイナにおけるテーブルのリレーションシップと結合については、「テーブルとリレーション」を参照してください。

[SQL]ページに表示されるクエリの作成結果

SQLクエリ
コードのコピー
select Movie.MovieID, Movie.Country, Movie.Title, MovieCrew.CastID,
MovieCrew.TitleID from Movie right join MovieCrew on
MovieCrew.MovieID = Movie.MovieID
where (Movie.Country = 'USA' and MovieCrew.CastID =1)

クエリデザイナでクエリを作成する手順

  1. [デザイン]ページで、[データベースビュー]からMovieテーブルのMovieID、Country、Titleの各フィールドをドラッグして[選択したフィールド]パネルにドロップします。
  2. [データベースビュー]からMovieCrewテーブルのCastIDとTitleIDの各フィールドをドラッグして[選択したフィールド]パネルにドロップします。
  3. 手順2で最初のフィールドを追加すると、[テーブルのリレーション]ダイアログが自動的に画面に表示されます。
    [テーブルのリレーション]ダイアログで、リレーションするテーブルのフィールドと一致させるMovieCrewテーブルの他のフィールドを選択して、両者の間の結合を作成することもできます。
  4. [テーブルのリレーション]ダイアログで、MovieテーブルとMovieCrewテーブルを結合するために[右外部結合]を選択します。[右外部結合]タブが強調表示されます。
    結合の種類については、「テーブルとリレーション」を参照してください。

  5. [テーブルのリレーション]ダイアログで[OK]をクリックして、テーブル間のリレーションシップを保存します。
    テーブル間のリレーションシップを設定した後も、[テーブルとリレーションシップ]パネルの[リレーション]ボタンから[テーブルのリレーション]ダイアログへ再度アクセスすることができます。
  6. [選択したフィールド]パネルの[抽出条件]オプションで、MovieテーブルのCountryフィールドに「= 'USA'」と設定し、フィルタ条件を追加します。
  7. 再び[選択したフィールド]パネルの[抽出条件]オプションで、MovieCrewテーブルのCastIDフィールドに「= 1」と設定し、フィルタ条件を追加します。
  8. クエリデザイナのツールバーで、実行]ボタンをクリックします。

    以下のような結果データが結果]パネルに表示されます。

クエリのプレビュー

クエリの作成が完了したら、クエリデザイナでそのクエリを実行して結果をプレビューすることができます。

  1. クエリデザイナの[クエリツール]セクションで、ツールバーに移動します。
  2. ボタンをクリックします。

    クエリデザイナダイアログの下部にある[結果]パネルで結果をプレビューすることができます。

メモ: プレビュー結果に表示されるのは、データベースから取得されたデータの一部だけです。

クエリの保存

ページレポート/RDLレポート

クエリデザイナでクエリを作成した後、[保存]ボタンを使用してクエリを[データセット]ダイアログに保存することができます。

  1. クエリデザイナでクエリを作成した後、クエリデザイナの[クエリツール]セクションでツールバーに移動します。
  2. ボタンをクリックします。作成したクエリが、[データセット]ダイアログの[クエリ]ページにある[クエリ]フィールドに表示されます。
  3. [OK]をクリックしてダイアログを閉じます。
    データセットとクエリ対象のフィールドが[レポートエクスプローラ]にノードとして表示されます。

セクションレポート

クエリデザイナでクエリを作成した後、[保存]ボタンを使用してクエリを[レポートデータソース]ダイアログに保存することができます。

  1. クエリデザイナでクエリを作成した後、クエリデザイナの[クエリツール]セクションでツールバーに移動します。
  2. ボタンをクリックします。作成したクエリが、[レポートデータソース]ダイアログの[クエリ]フィールドに表示されます。
  3. [OK]をクリックしてダイアログを閉じます。クエリ対象のフィールドが[レポートエクスプローラ]にバインドフィールドノードとして表示されます。

クエリのクリア

クエリを作成すると、[選択したフィールド]パネルにフィールドが表示され、[テーブルとリレーションシップ]パネルにはクエリに使用したフィールドが属するテーブルが表示されます。

  1. クエリデザイナの[クエリツール]セクションで、ツールバーに移動します。
  2. ボタンをクリックします。これにより、[クエリツール]セクションが完全にクリアされ、[選択したフィールド]パネルと[テーブルとリレーションシップ]パネルが空になります。また、[SQL]タブのSQLクエリと[結果]パネルに表示されていたデータもクリアされます。

クエリの編集

クエリデザイナでクエリを編集する方法は2通りあります。

  1. [データベースビュー]からMovieテーブルのMovieIDとTitleの各フィールドをドラッグして[選択したフィールド]パネルにドロップします。
  2. クエリを手動で編集するために、[クエリツール][SQL]タブに切り替えます。


  3. フィールド名Movie.Lengthを[SQL]タブに入力します。
    SQLクエリ
    コードのコピー
    select Movie.MovieID, Movie.Title, Movie.Length
    from Movie
    
  4. クエリデザイナのツールバーで、[実行]ボタンをクリックします。

    追加したLength列が[結果]パネルに表示されます。

 

  1. クエリデザイナを開き、[クエリツール][SQL]タブに移動します。このタブにすでにSQLクエリが存在していることを確認します。
  2. [デザイン]タブに移動し、[選択したフィールド]パネルにすでにMovieIDフィールドとTitleフィールドが設定されていることを確認します。
  3. [データベースビュー]からMovieテーブルのLengthフィールドをドラッグして[選択したフィールド]パネルにドロップします。
  4. 再び[SQL]タブに移動し、クエリが次のように変わっていることを確認します。
    SQLクエリ
    コードのコピー
    select Movie.MovieID, Movie.Title, Movie.Length
    from Movie
    
  5. クエリデザイナのツールバーで、[実行]ボタンをクリックします。以下のような結果データが[結果]パネルに表示されます。


フィールドの削除

クエリデザイナでは、クエリからフィールドを削除することができます。クエリからフィールドを削除すると、削除したフィールドはデータベース内に残りますが、そのクエリでは使用されなくなります。

  1. [データベースビュー]からMovieテーブルのMovieID、Country、Titleの各フィールドをドラッグして[選択したフィールド]パネルにドロップします。
  2. [選択したフィールド]パネルのMovieIDフィールドにマウスを合わせると、[削除]アイコンが表示されます。
  3. [削除]アイコンをクリックしてフィールドを削除します。削除したフィールドは[SQL]タブのSQLクエリからも削除されることに注意してください。

データの並べ替え

クエリデザイナで、1つ以上のフィールドに基づいてテーブル、クエリ、フォーム、またはレポートのレコードを並べ替えることができます。たとえば、MovieテーブルをTitleの昇順、かつCountryの降順に並べ替えることが可能です。複数のフィールドで並べ替える場合は、並べ替えるフィールドの順序も指定することができます。

クエリのSQL文

SQLクエリ
コードのコピー
select Movie.MovieID, Movie.Title, Movie.Countryfrom Movieorder by Movie.Country desc, Movie.Title asc

クエリデザイナでクエリを作成する手順

  1. [データベースビュー]からMovieテーブルのMovieID、Title、Countryの各フィールドをドラッグして[選択したフィールド]パネルにドロップします。
  2. [選択したフィールド]パネルのTitleフィールドで、[ソート]オプションを[昇順]に設定します。[ソート順]オプションが自動的に「1」に設定されます。
  3. Countryフィールドに移動し、[ソート]オプションを[昇順]に設定します。[ソート順]オプションが自動的に「2」に設定されます。
    この時点でクエリを実行すると、テーブルの値はまずTitleフィールドの昇順に並べ替えられてから、Countryフィールドの昇順に並べ替えられます。
  4. Countryフィールドで、[ソート順]の値を「1」に変更します。Titleフィールドの[ソート順]の値が自動的に「2」に変更されます。
    ここでクエリを実行すると、テーブルの値はまずCountryフィールドの昇順に並べ替えられてから、Titleフィールドの昇順に並べ替えられます。
  5. クエリデザイナのツールバーで、[実行]ボタンをクリックします。以下のような結果データが[結果]パネルに表示されます。

重複するレコードの除去

テーブルからデータを取得するとき、重複するレコードが含まれる場合があります。クエリのSelect文でDistinct演算子を使用すると、このような値が除去されます。

クエリデザイナのツールバーにある[重複項目を排除する]チェックボックスを使用して、重複するレコードを除去することができます。たとえば、MovieテーブルのYearReleasedフィールドから重複しないレコードを取得することが可能です。

[SQL]ページに表示されるクエリの作成結果

SQLクエリ
コードのコピー
select DISTINCT Movie.Title, Movie.YearReleased
from Movie

 

  1. [データベースビュー]からMovieテーブルのTitleとYearReleasedの各フィールドをドラッグして[選択したフィールド]パネルにドロップします。
  2. YearReleasedフィールドの重複しない値を表示するため、クエリデザイナのツールバーにある チェックボックスをオンにします。
  3. [実行]ボタンをクリックします。以下のような結果データが[結果]パネルに表示されます。

集計関数とグループ化

クエリデザイナで、フィールドに基づいてデータをグループ化し、SumやAvgなどの関数を呼び出す集計クエリを作成することができます。たとえば、Movieテーブルに含まれる映画をCountryでグループ化し、各国の映画評価値の平均を計算することが可能です。

クエリのSQL文

SQLクエリ
コードのコピー
select Movie.Country, Avg(Movie.UserRating) as [Average Ratings]
from Movie group by Movie.Country

クエリデザイナでクエリを作成する手順

  1. [データベースビュー]からMovieテーブルのCountryとUserRatingの各フィールドをドラッグして[選択したフィールド]パネルにドロップします。
  2. [選択したフィールド]パネルのCountryフィールドで、[集計]ドロップダウンリストから[GroupBy]を選択します。これで国名によってデータがグループ化されます。
  3. [選択したフィールド]パネルのUserRatingフィールドで[別名]オプションを選択し、別名をAverage Ratingsに設定します。
  4. UserRatingフィールドの[集計]ドロップダウンリストで、事前定義された集計関数の一覧から[Avg]を選択します。これで映画に対するユーザー評価の平均値が得られます。
  5. クエリデザイナのツールバーで、[実行]ボタンをクリックします。

    以下のような結果データが[結果]パネルに表示されます

クエリからフィールドを非表示にする方法

クエリデザイナの非表示オプションを使用して、クエリによって取得したデータの一部が表示されないようにすることができます。たとえば、クエリの結果セットからMovieテーブルのMovieIDフィールドを非表示にすることが可能です。

クエリデザイナでフィールドを非表示にするには、以下の手順に従います。

  1. [データベースビュー]からMovieテーブルのTitle、UserRating、Countryの各フィールドをドラッグして[選択したフィールド]パネルにドロップします。
  2. [選択したフィールド]パネルのCountryフィールドで[抽出条件]オプションを選択し、値を「= 'USA'」に設定します。
  3. [選択したフィールド]パネルのTitleフィールドで、[別名]オプションの値をM「Movies from USA」に設定します。
  4. 下の図に示すようにCountryフィールドの[出力する]チェックボックスをオフにして、結果セットからCountryフィールドを非表示にします。


  5. クエリデザイナのツールバーで、[実行]ボタンをクリックします。


    Countryフィールドのデータは[結果]パネルに表示されません。

フィルタ条件の設定

SQLのWhere句は、特定の基準に一致する結果だけに絞り込むために使用します。Where句は、他の無関係なデータを除いた限定的なデータをテーブルから取得するときに使用することができます。

たとえば、MovieIDが「1」、または「2」である映画のみのUserRatingを表示する場合は、クエリデザイナでWhere句と'='演算子を使用します。

クエリのSQL文

SQLクエリ
コードのコピー
select Movie.MovieID, Movie.UserRating
from Movie
where (Movie.MovieID = 1 or Movie.MovieID = 2)

クエリデザイナでクエリを作成する手順

  1. [データベースビュー]からMovieテーブルのMovieIDとUserRatingの各フィールドをドラッグして[選択したフィールド]パネルにドロップします。
  2. [選択したフィールド]パネルのMovieIDフィールドで[抽出条件]オプションを選択し、値を「=1」に設定します。
  3. MovieIDフィールドに[または]条件を追加し、値を「=2」に設定します。


    MovieID = 1、またはMovieID = 2の行が結果セットに表示されます。
  4. クエリ デザイナのツールバーで、[実行]ボタンをクリックします。

    以下のような結果データが[結果]パネルに表示されます

パラメータ付きクエリの作成

クエリデザイナを使用してクエリにパラメータを設定することができます。パラメータ付きクエリは通常、クエリを実行する前にユーザーに値を入力するよう要求し、入力された値に基づいて結果セットに表示するデータを決定します。
単純なパラメータ付きクエリの使い方としては、たとえばユーザーに映画IDを入力するよう求めるクエリパラメータを作成し、入力されたIDに基づいて映画のTitle、UserRating、およびLengthを表示するような例が挙げられます。

クエリのSQL文

SQLクエリ
コードのコピー
select Movie.MovieID, Movie.Title, Movie.Country, Movie.UserRating
from Movie
where Movie.Country = ?

クエリデザイナでクエリを作成する手順

  1. [データベースビュー]からMovieテーブルのMovieID、Title、UserRating、Countryの各フィールドをドラッグして[選択したフィールド]パネルにドロップします。
  2. [選択したフィールド]パネルのCountryフィールドで[抽出条件]オプションを選択し、値を「= @Country」に設定します。
    これでCountryパラメータが作成されます。
  3. クエリデザイナのツールバーで、[実行]ボタンをクリックします。[パラメータ]ダイアログが自動的に画面に表示されます。
  4. ダイアログボックスでパラメータ値として「USA」を入力して、[OK]をクリックします。以下のような結果データが[結果]パネルに表示されます。
関連トピック