リレーショナル クエリ デザイナーのユーザー インターフェイス
SQL Server データ ツール (SSDT) のレポート デザイナーにはグラフィカル クエリ デザイナーとテキストベースのクエリ デザイナーが用意されており、レポート データセット用に Microsoft Windows Azure SQL データベース および Microsoft SQL Server 2008 R2 並列データ ウェアハウス から取得するデータを指定するクエリの作成に使用できます。メタデータを検索してクエリを対話的に作成し、クエリの結果を表示する場合は、グラフィカル クエリ デザイナーを使用します。グラフィカル クエリ デザイナーで作成されたクエリの表示や、クエリの変更を行う場合は、テキスト ベースのクエリ デザイナーを使用します。ファイルまたはレポートから既存のクエリをインポートすることもできます。
注 |
---|
SQL データベースおよび SQL Server 2008 R2 並列データ ウェアハウスからデータを取得するクエリを記述するときに使用するグラフィカル クエリ デザイナーは、SQL Server で使用するクエリ デザイナーとは異なります。SQL Server からデータを取得するクエリを記述するには、Visual Studio に用意されている Visual Database Tools を使用します。詳細については、「グラフィカル クエリ デザイナーのユーザー インターフェイス」を参照してください。 |
セキュリティに関する注意 |
---|
ユーザーは、クエリを作成して実行する際にデータ ソースにアクセスします。したがって、データ ソースに対する最小限の権限 (読み取り専用権限など) を付与する必要があります。 |
グラフィカル クエリ デザイナー
グラフィカル クエリ デザイナーでは、データベースのテーブルとビューを検索し、データセットのデータの取得元となるデータベースのテーブルと列を指定する SQL の SELECT ステートメントを対話的に作成できます。データセットに含めるフィールドを選択し、必要に応じて、データセットのデータを制限するフィルターを指定します。フィルターをパラメーターとして使用することを指定すると、フィルターの値を実行時に提供できます。複数の関連テーブルを選択した場合は、クエリ デザイナーによって 2 つのテーブルのセット間のリレーションシップが記述されます。
グラフィカル クエリ デザイナーは、3 つの領域に分割されています。クエリでテーブル/ビューとストアド プロシージャ/テーブル値関数のどちらを使用するかに応じて、クエリ デザイナーのレイアウトは変わります。
注 |
---|
SQL Server 2008 R2 並列データ ウェアハウス は、クエリ内でのストアド プロシージャまたはテーブル値関数をサポートしていません。 |
次の図は、テーブルまたはビューを使用した場合のグラフィカル クエリ デザイナーです。
次の図は、ストアド プロシージャまたはテーブル値関数を使用した場合のグラフィカル クエリ デザイナーです。
次の表に各ペインの機能を示します。
データベース ビュー (Database view)
データベース スキーマ別に編成された、テーブル、ビュー、ストアド プロシージャ、およびテーブル値関数の階層ビューを表示します。選択されたフィールド
データベース ビュー ペインで選択したアイテムのデータベース フィールド名の一覧を表示します。これらのフィールドがレポート データセットのフィールド コレクションになります。関数のパラメーター
データベース ビュー ペインのストアド プロシージャまたはテーブル値関数に対する入力パラメーターの一覧を表示します。リレーションシップ
データベース ビュー ペインで選択したテーブルまたはビューのフィールドから推測されるリレーションシップ、あるいは手動で作成したリレーションシップの一覧を表示します。適用されたフィルター
データベース ビューのテーブルまたはビューのフィールドおよびフィルター条件の一覧を表示します。[クエリ結果]
自動的に生成されたクエリの結果セットのサンプル データを表示します。
データベース ビュー ペイン
データベース ビュー ペインには、表示する権限のあるデータベース オブジェクトのメタデータが表示されます。表示されるメタデータは、データ ソース接続と資格情報によって決まります。階層ビューに、データベース スキーマ別に編成されたデータベース オブジェクトが表示されます。各スキーマのノードを展開すると、テーブル、ビュー、ストアド プロシージャ、およびテーブル値関数が表示されます。テーブルまたはビューを展開すると列が表示されます。
選択されたフィールド ペイン
選択されたフィールド ペインには、クエリに含めるレポート データセットのフィールド、およびグループと集計が表示されます。
次のオプションが表示されます。
**[選択されたフィールド] **選択したテーブルやビューのデータベース フィールド、またはストアド プロシージャやテーブル値関数に対する入力パラメーターが表示されます。このペインに表示されるフィールドがレポート データセットのフィールド コレクションになります。
レポート データセットのフィールド コレクションを表示するには、レポート データ ペインを使用します。これらのフィールドは、レポートを表示するときにテーブル、グラフ、およびその他のレポート アイテムに表示できるデータを表します。
[グループ化と集計] クエリでのグループ化機能と集計機能の使用を切り替えます。グループ化と集計を追加した後にグループ化と集計の機能をオフにすると、グループ化と集計が削除されます。[(なし)] は、グループ化と集計を使用しないことを示します。グループ化と集計の機能を再びオンにすると、以前のグループ化と集計が復元されます。
**[フィールドの削除] **選択したフィールドを削除します。
グループ化と集計
大きなテーブルを持つデータベースに対してクエリを実行すると、レポート内では使用できないほど多数のデータ行が返され、大量のデータを転送するネットワークのパフォーマンスや、レポートを処理するレポート サーバーのパフォーマンスに悪影響を与える可能性があります。データベース サーバー上のデータを要約する SQL 集計をクエリに含めると、データ行の数を制限することができます。SQL 集計は、レポートを表示するときに適用されるクライアント側集計とは異なります。
集計ではデータの要約が返されます。データは、要約データを提供する集計をサポートするためにグループ化されます。クエリで集計を使用すると、そのクエリによって返される他のフィールドは自動的にグループ化され、クエリには SQL の GROUP BY 句が含まれます。[グループ化と集計] ボックスの一覧では、[グループ化] オプションだけを使用することによって、集計を追加せずにデータを要約できます。多くの集計には、DISTINCT キーワードを使用するバージョンが含まれています。DISTINCT を含めることで値の重複を排除できます。
SQL Server 2008 R2 並列データ ウェアハウスでは Transact-SQL が、Microsoft SQL Server 2008 R2 並列データ ウェアハウスでは SQL が使用されます。いずれの SQL 言語構文でも、クエリ デザイナーに用意されている句、キーワード、および集計がサポートされます。
Transact-SQL の詳細については、msdn.microsoft.com で、SQL Server オンライン ブックの「Transact-SQL リファレンス (データベース エンジン)」を参照してください。
次の表に集計の一覧とその説明を記載します。
Aggregate |
説明 |
---|---|
Avg |
グループ内の値の平均を返します。SQL AVG 集計を実装します。 |
[カウント] |
グループ内のアイテムの数を返します。SQL COUNT 集計を実装します。 |
Count Big |
グループ内のアイテム数を返します。これは SQL COUNT_BIG 集計です。COUNT と COUNT_BIG の違いは、COUNT_BIG が常に bigint データ型の値を返すという点です。 |
Min |
グループ内の最小値を返します。SQL MIN 集計を実装します。 |
Max |
グループ内の最大値を返します。SQL MAX 集計を実装します。 |
StDev |
グループ内のすべての値の統計的標準偏差を返します。SQL STDEV 集計を実装します。 |
StDevP |
グループで指定された式のすべての値の母集団の統計的標準偏差を返します。SQL STDEVP 集計を実装します。 |
Sum |
グループ内のすべての値の合計を返します。SQL SUM 集計を実装します。 |
Var |
グループ内のすべての値の統計的変位を返します。SQL VAR 集計を実装します。 |
VarP |
グループ内のすべての値の母集団の統計的変位を返します。SQL VARP 集計を実装します。 |
Avg Distinct |
一意の平均値を返します。AVG 集計と DISTINCT キーワードの組み合わせを実装します。 |
Count Distinct |
一意の数を返します。COUNT 集計と DISTINCT キーワードの組み合わせを実装します。 |
Count Big Distinct |
グループ内のアイテムの一意の数を返します。COUNT_BIG 集計と DISTINCT キーワードの組み合わせを実装します。 |
StDev Distinct |
一意の統計的標準偏差を返します。STDEV 集計と DISTINCT キーワードの組み合わせを実装します。 |
StDevP Distinct |
一意の統計的標準偏差を返します。STDEVP 集計と DISTINCT キーワードの組み合わせを実装します。 |
Sum Distinct |
一意の合計を返します。SUM 集計と DISTINCT キーワードの組み合わせを実装します。 |
Var Distinct |
一意の統計的変位を返します。VAR 集計と DISTINCT キーワードの組み合わせを実装します。 |
VarP Distinct |
一意の統計的変位を返します。VARP 集計と DISTINCT キーワードの組み合わせを実装します。 |
関数のパラメーター ペイン
関数のパラメーター ペインには、ストアド プロシージャまたはテーブル値関数のパラメーターが表示されます。次の列が表示されます。
**[パラメーター名] **ストアド プロシージャまたはテーブル値関数で定義されるパラメーターの名前を表示します。
[値] デザイン時にクエリを実行してクエリ結果ペインに表示されるデータを取得する際にパラメーターに使用される値。この値は、実行時にレポートを実行する際には使用されません。
リレーションシップ ペイン
リレーションシップ ペインには、結合リレーションシップが表示されます。リレーションシップは、データベース メタデータから取得された外部キー リレーションシップを基に自動的に検出したり、手動で作成したりできます。
次のオプションが表示されます。
**[自動検出] **テーブル間のリレーションシップを自動的に作成する自動検出機能を切り替えます。自動検出をオンにすると、クエリ デザイナーによって、テーブル内の外部キーからリレーションシップが作成されます。自動検出をオフにすると、リレーションシップを手動で作成する必要があります。データベース ビュー ペインでテーブルを選択する際、自動検出によってリレーションシップが自動的に作成されます。結合を手動で作成した後に自動検出をオンにすると、これらの結合は破棄されます。
重要 SQL Server 2008 R2 並列データ ウェアハウス で使用する場合、結合の作成に必要なメタデータは提供されず、リレーションシップを自動的に検出できません。SQL Server 2008 R2 並列データ ウェアハウス からデータを取得するクエリの場合は、すべてのテーブル結合を手動で作成する必要があります。
[リレーションシップの追加] [リレーションシップ] ボックスの一覧にリレーションシップを追加します。
自動検出がオンになっている場合、クエリで使用される列のテーブルが自動的に [リレーションシップ] ボックスの一覧に追加されます。自動検出で 2 つのテーブルが関連付けられていることが特定されると、1 つのテーブルは [左テーブル] 列に、もう 1 つのテーブルは [右テーブル] 列に追加され、それらの間に内部結合が作成されます。リレーションシップごとに、クエリ内に JOIN 句が生成されます。テーブルが関連付けられていない場合、すべてのテーブルが [左テーブル] 列に表示され、[結合の種類] 列にテーブルが互いに関連付けられていないことが示されます。自動検出がオンになっている場合、自動検出によって互いに関連付けられていないことが特定されたテーブル間にリレーションシップを手動で追加することはできません。
自動検出がオフになっている場合は、テーブル間のリレーションシップを追加したり変更したりできます。2 つのテーブルの結合に使用するフィールドを指定するには、[フィールドの編集] をクリックします。
[リレーションシップ] ボックスの一覧にリレーションシップが表示される順序は、クエリで実行される結合の順序を表しています。リレーションシップの順序を変更するには、一覧内でリレーションシップを上下に移動します。
クエリで複数のリレーションシップを使用している場合、最初のリレーションシップを除いて、各リレーションシップ内のいずれか 1 つのテーブルが、前のリレーションシップ内で参照されている必要があります。
あるリレーションシップ内の両方のテーブルが前方のリレーションシップによって参照されている場合、そのリレーションシップでは個別の結合句が生成されません。その代わり、前方のリレーションシップに対して生成された結合句に結合条件が追加されます。結合の種類は、同じテーブルを参照している前方のリレーションシップによって推測されます。
**[フィールドの編集] **テーブル間のリレーションシップの追加や変更を行う [関連フィールドの編集] ダイアログ ボックスが開きます。結合する右テーブルおよび左テーブル内のフィールドが選択されています。左テーブルおよび右テーブルの複数のフィールドを結合すると、リレーションシップ内で複数の結合条件を指定できます。左テーブルと右テーブルを結合する 2 つのフィールドは同じ名前でなくてもかまいません。結合されるフィールドのデータ型は互いに適合するデータ型でなければなりません。
**[リレーションシップの削除] ** 選択したリレーションシップを削除します。
[上へ移動] および [下へ移動] [リレーションシップ] ボックスの一覧内のリレーションシップを上下に移動します。クエリ内のリレーションシップの配置順によっては、クエリ結果に影響が出る場合があります。リレーションシップがクエリに追加される順序は、[リレーションシップ] ボックスの一覧内でリレーションシップが表示される順序と同じです。
次の列が表示されます。
**[左テーブル] **結合リレーションシップの一部である最初のテーブルの名前を表示します。
[結合の種類] 自動的に生成されるクエリで使用される SQL の JOIN ステートメントの種類を表示します。既定では、外部キー制約が検出された場合は INNER JOIN が使用されます。その他の結合の種類は LEFT JOIN または RIGHT JOIN です。これらのいずれの結合の種類も該当しない場合は、[結合の種類] 列に [リレーションシップなし] と表示されます。リレーションシップのないテーブルには CROSS JOIN 結合は作成されません。代わりに、左テーブルと右テーブル内の列を結合することでリレーションシップを手動で作成する必要があります。JOIN の種類の詳細については、msdn.microsoft.com の SQL Serverオンライン ブックの「結合の基礎」を参照してください。
**[右テーブル] **結合リレーションシップの 2 番目のテーブルの名前を表示します。
**[結合フィールド] **結合されたフィールドのペアをコンマ (,) で区切った結合条件がリレーションシップに複数ある場合に、結合されたフィールドのペアを一覧表示します。
適用されたフィルター ペイン
適用されたフィルター ペインには、実行時に取得されるデータの行数を制限するために使用される条件が表示されます。このペインで指定された条件を使用して SQL の WHERE 句が生成されます。パラメーター オプションを選択すると、レポート パラメーターが自動的に生成されます。クエリ パラメーターに基づくレポート パラメーターを使用すると、ユーザーがクエリの値を指定してレポートのデータを制御できるようになります。
次の列が表示されます。
**[フィールド名] **条件を適用するフィールドの名前を表示します。
**[演算子] **フィルター式で使用する演算を表示します。
**[値] **フィルター式で使用する値を表示します。
**[パラメーター] **クエリ パラメーターをクエリに追加するオプションを表示します。[データセットのプロパティ] を使用すると、クエリ パラメーターとレポート パラメーターの関係を表示できます。
クエリ結果ペイン
クエリ結果ペインには、その他のペインの選択内容によって指定されている自動的に生成されたクエリの結果が表示されます。結果セットの列は選択されたフィールド ペインで指定したフィールドで、行データは適用されたフィルター ペインで指定したフィルターによって制限されます。クエリに集計が含まれている場合、結果セットには新しい集計の列が含まれます。たとえば、Count 集計を使用して [Color] 列を集計すると、クエリ結果に新しい列が含まれます。この列には既定で、Count_Color という名前が付けられます。
このデータは、クエリの実行時にデータ ソースから取得された値を表します。このデータはレポート定義に保存されません。レポートの実際のデータは、レポートの処理時に取得されます。
結果セットの並べ替え順序は、データがデータ ソースから取得された順序によって決まります。並べ替え順序は、クエリの修正によって変更することも、レポートのデータが取得された後に変更することもできます。
グラフィカル クエリ デザイナーのツール バー
リレーショナル クエリ デザイナーのツール バーにある次のボタンを使用すると、クエリを指定したりその結果を表示したりすることができます。
ボタン |
説明 |
---|---|
[テキストとして編集] |
テキスト ベースのクエリ デザイナーに切り替えて、自動的に生成されたクエリの表示や変更を行います。 |
[インポート] |
ファイルまたはレポートから既存のクエリをインポートします。サポートされているファイルの種類は .sql と .rdl です。 |
[クエリの実行] |
クエリを実行します。クエリ結果ペインに結果セットが表示されます。 |
自動的に生成されたクエリについて
データベース ビュー ペインでテーブルおよび列またはストアド プロシージャおよびビューを選択すると、クエリ デザイナーによって基になる主キーと外部キーのリレーションシップがデータベース スキーマから取得されます。クエリ デザイナーでは、これらのリレーションシップを分析することによって 2 つのテーブル間のリレーションシップが検出され、クエリに結合が追加されます。その後、グループと集計の追加、リレーションシップの追加または変更、フィルターの追加を行うことでクエリを変更できます。データの取得元である列、テーブル間の結合、グループまたは集計を示すクエリ テキストを表示するには、[テキストとして編集] をクリックします。
テキスト ベースのクエリ デザイナー
クエリを制御する最善の方法として、テキスト ベースのクエリ デザイナーを使用してください。テキスト ベースのクエリ デザイナーに切り替えるには、ツール バーの [テキストとして編集] をクリックします。テキスト ベースのクエリ デザイナーでクエリを編集すると、リレーショナル クエリ デザイナーは使用できなくなります。クエリは、常にテキスト ベースのクエリ デザイナーで開かれるようになります。詳細については、「テキスト ベースのクエリ デザイナーのユーザー インターフェイス」を参照してください。