PowerTools ActiveReports for .NET 9.0J > ActiveReportsユーザーガイド > 概念 > クエリデザイナ > クエリデザイナでクエリの作成 |
このトピックでは、クエリデザイナでクエリを構築するプロセスについて説明します。クエリデザイナでのクエリ構築は、以下のような簡単な手順で実行できます。
手順1: テーブルからフィールドを追加して単純なクエリを生成する
手順2: リレーションシップを設定する(複数のテーブルを使用したクエリのみに適用可能)
手順3: 個々のフィールドまたはテーブルのオプションを設定する
手順4: クエリを実行する
手順5: クエリをプレビューする
以下の手順は、すでにページレポートまたはRDLレポートのテンプレートを追加し、データソースへの接続が済んでいることを前提とします。詳細については、プロジェクトにレポートを追加するおよびデータソースとの接続を参照してください。
クエリデザイナにアクセスする方法については、「クエリデザイナ」を参照してください。
メモ: このトピックではReelsデータベース(Reels.mdb)のテーブルを使用しています。Reelsデータベースへの(..\ActiveReportsNET9\Data\Reels.mdbへのアクセス権限が必要です。 |
クエリの作成と実行(単一テーブル)
クエリデザイナには、単一のテーブルを参照する単純なクエリを設計するのに役立つビジュアルなインタフェースがあります。
クエリのSQL文
SQLクエリ |
コードのコピー
|
---|---|
select Movie.MovieID, Movie.Title from Movie |
クエリデザイナでクエリを作成する手順
クエリの作成と実行(複数テーブル)
クエリデザイナには、複数のテーブルを参照してそれらのリレーションシップを設定するためのビジュアルなインタフェースがあります。
以下の例では、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) |
クエリデザイナでクエリを作成する手順
クエリのプレビュー
クエリの設計が完了したら、クエリデザイナでそのクエリを実行して結果をプレビューできます。
メモ: プレビュー結果に表示されるのはデータベースから取得されたデータの一部だけです。 |
クエリの保存
ページレポート/RDLレポート
クエリデザイナでクエリを作成した後、[保存]ボタンを使用してクエリを[データセット]ダイアログに保存できます。
セクションレポート
クエリデザイナでクエリを作成した後、[保存]ボタンを使用してクエリを[レポートデータソース]ダイアログに保存できます。
クエリのクリア
クエリを作成すると、[選択したフィールド]パネルにフィールドが表示され、[テーブルとリレーションシップ]パネルにはクエリに使用したフィールドが属するテーブルが表示されます。
クエリの編集
クエリデザイナでクエリを編集する方法は2通りあります。
SQLクエリ |
コードのコピー
|
---|---|
select Movie.MovieID, Movie.Title, Movie.Length from Movie |
SQLクエリ |
コードのコピー
|
---|---|
select Movie.MovieID, Movie.Title from Movie |
SQLクエリ |
コードのコピー
|
---|---|
select Movie.MovieID, Movie.Title, Movie.Length from Movie |
フィールドの削除
クエリデザイナでクエリからフィールドを削除できます。クエリからフィールドを削除すると、削除したフィールドはデータベース内に残りますが、そのクエリでは使用されなくなります。
データの並べ替え
クエリデザイナで、1つ以上のフィールドに基づいてテーブル、クエリ、フォーム、またはレポートのレコードを並べ替えることができます。たとえば、MovieテーブルをTitleの昇順かつCountryの降順に並べ替えることが可能です。複数のフィールドで並べ替える場合は、並べ替えるフィールドの順序も指定できます。
クエリのSQL文
SQLクエリ |
コードのコピー
|
---|---|
select Movie.MovieID, Movie.Title, Movie.Countryfrom Movieorder by Movie.Country desc, Movie.Title asc |
クエリデザイナでクエリを作成する手順
重複するレコードの除去
テーブルからデータを取得するとき、重複するレコードが含まれる場合があります。クエリのSelect文でDistinct演算子を使用すると、このような値が除去されます。
クエリデザイナのツールバーにある[重複項目を排除する]チェックボックスを使用して、重複するレコードを除去できます。たとえば、MovieテーブルのYearReleasedフィールドから重複しないレコードを取得することが可能です。
クエリのSQL文
SQLクエリ |
コードのコピー
|
---|---|
select DISTINCT Movie.Title, Movie.YearReleased from Movie |
クエリデザイナでクエリを作成する手順
集計関数とグループ化
クエリデザイナで、フィールドに基づいてデータをグループ化し、SumやAvgなどの関数を呼び出す集計クエリを作成できます。たとえば、Movieテーブルに含まれる映画をCountryでグループ化し、各国の映画評価値の平均を計算することが可能です。
クエリのSQL文
SQLクエリ |
コードのコピー
|
---|---|
select Movie.Country, Avg(Movie.UserRating) as [Average Ratings] from Movie group by Movie.Country |
クエリデザイナでクエリを作成する手順
クエリからフィールドを非表示にする
クエリデザイナの非表示オプションを使用して、クエリによって取得したデータの一部が表示されないようにすることができます。たとえば、クエリの結果セットからMovieテーブルのMovieIDフィールドを非表示にすることが可能です。
クエリデザイナでフィールドを非表示にするには、以下の手順に従います。
フィルタ条件の設定
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) |
クエリデザイナでクエリを作成する手順
パラメータ付きクエリの作成
クエリデザイナを使用してクエリにパラメータを設定できます。パラメータ付きクエリは通常、クエリを実行する前にユーザーに値を入力するよう要求し、入力された値に基づいて結果セットに表示するデータを決定します。
単純なパラメータ付きクエリの使い方としては、たとえばユーザーに映画IDを入力するよう求めるクエリパラメータを作成し、入力されたIDに基づいて映画のTitle、UserRating、およびLengthを表示するような例が挙げられます。
クエリのSQL文
SQLクエリ |
コードのコピー
|
---|---|
select Movie.MovieID, Movie.Title, Movie.Country, Movie.UserRating from Movie where Movie.Country = ? |
クエリデザイナでクエリを作成する手順