このトピックでは、クエリデザイナでクエリを構築するプロセスについて説明します。クエリデザイナでのクエリ構築は、以下のような簡単な手順で実行することができます。
手順1: テーブルからフィールドを追加して単純なクエリを生成する
手順2: リレーションシップを設定する(複数のテーブルを使用したクエリのみに適用可能)
手順3: 個々のフィールド、またはテーブルのオプションを設定する
手順4: クエリを実行する
手順5: クエリをプレビューする
以下の手順は、すでにページレポート、またはRDLレポートのテンプレートを追加し、データソースへの接続が済んでいることを前提とします。詳細については、「クイックスタート」、「データソースとの接続」を参照してください。
クエリデザイナにアクセスする方法については、「クエリデザイナ」を参照してください。
クエリの作成と実行(単一テーブル)
クエリデザイナには、単一のテーブルを参照して単純なクエリを作成するのに役立つビジュアルインタフェースがあります。
下記の「クエリデザイナでクエリを作成する手順」に従ってクエリを作成すると、[SQL]ページ内に以下のクエリが表示されます。
[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 = ? |
クエリデザイナでクエリを作成する手順