次の方法で共有


リレーショナル クエリ デザイナーのユーザー インターフェイス (レポート ビルダー 3.0)

レポート ビルダー 3.0 にはグラフィカルなクエリ デザイナーとテキスト ベースのクエリ デザイナーが用意されており、レポート データセットの Microsoft SQL Server リレーショナル データベース、Microsoft SQL Azure リレーショナル データベース、および Microsoft SQL Server 2008 R2 並列データ ウェアハウスから取得するデータを指定するクエリの作成に使用できます。メタデータを検索してクエリを対話的に作成し、クエリの結果を表示する場合は、グラフィカルなクエリ デザイナーを使用します。グラフィカルなクエリ デザイナーで作成されたクエリの表示や、クエリの変更を行う場合は、テキスト ベースのクエリ デザイナーを使用します。ファイルまたはレポートから既存のクエリをインポートすることもできます。

注意

レポート ビルダー 3.0 では、データ ソースの種類が Oracle、OLE DB、ODBC、および Teradata の場合にクエリを指定するには、テキスト ベースのクエリ デザイナーを使用する必要があります。詳細については、「テキストベースのクエリ デザイナーのユーザー インターフェイス (レポート ビルダー 3.0)」を参照してください。

セキュリティに関する注意セキュリティに関する注意

ユーザーは、クエリを作成して実行する際にデータ ソースにアクセスします。したがって、データ ソースに対する最小限の権限 (読み取り専用権限など) を付与する必要があります。

グラフィカルなクエリ デザイナー

グラフィカルなクエリ デザイナーでは、データベースのテーブルとビューを検索し、データセットのデータを取得するデータベースのテーブルと列を指定する SQL の SELECT ステートメントを対話的に作成できます。データセットに含めるフィールドを選択し、必要に応じて、データセットのデータを制限するフィルターを指定します。フィルターをパラメーターとして使用することを指定すると、フィルターの値を実行時に提供できます。複数の関連テーブルを選択した場合は、クエリ デザイナーによって 2 つのテーブルのセット間のリレーションシップが示されます。

グラフィカルなクエリ デザイナーは、3 つの領域に分割されています。クエリでテーブル/ビューとストアド プロシージャ/テーブル値関数のどちらを使用するかに応じて、クエリ デザイナーのレイアウトは変わります。

注意

SQL Server 2008 R2 並列データ ウェアハウスは、ストアド プロシージャまたはテーブル値関数をサポートしていません。

次の図は、テーブルまたはビューを使用した場合のグラフィカルなクエリ デザイナーです。

クエリ用のグラフィカル デザイナー

次の図は、ストアド プロシージャまたはテーブル値関数を使用した場合のグラフィカルなクエリ デザイナーです。

グラフィカル クエリ デザイナーのストアド プロシージャ

次の表に各ペインの機能を示します。

  • データベース ビュー
    データベース スキーマ別に編成された、テーブル、ビュー、ストアド プロシージャ、およびテーブル値関数の階層ビューを表示します。

  • 選択されたフィールド
    データベース ビュー ペインで選択したアイテムのデータベース フィールド名の一覧を表示します。これらのフィールドがレポート データセットのフィールド コレクションになります。

  • 関数のパラメーター
    データベース ビュー ペインのストアド プロシージャまたはテーブル値関数に対する入力パラメーターの一覧を表示します。

  • リレーションシップ
    データベース ビュー ペインで選択したテーブルまたはビューのフィールドから推測されるリレーションシップ、あるいは手動で作成したリレーションシップの一覧を表示します。

  • 適用されたフィルター
    データベース ビューのテーブルまたはビューのフィールドおよびフィルター条件の一覧を表示します。

  • クエリ結果
    自動的に生成されたクエリの結果セットのサンプル データを表示します。

データベース ビュー ペイン

データベース ビュー ペインには、表示する権限のあるデータベース オブジェクトのメタデータが表示されます。表示されるメタデータは、データ ソース接続と資格情報によって決まります。階層ビューに、データベース スキーマ別に編成されたデータベース オブジェクトが表示されます。各スキーマのノードを展開すると、テーブル、ビュー、ストアド プロシージャ、およびテーブル値関数が表示されます。テーブルまたはビューを展開すると列が表示されます。

選択されたフィールド ペイン

選択されたフィールド ペインには、レポート データセットのフィールド、およびクエリに含めるグループと集計が表示されます。

次のオプションが表示されます。

  • **[選択されたフィールド]   **選択したテーブルまたはビューのデータベース フィールドや、ストアド プロシージャまたはテーブル値関数に対する入力パラメーターが表示されます。このペインに表示されるフィールドがレポート データセットのフィールド コレクションになります。

    レポート データセットのフィールド コレクションを表示するには、レポート データ ペインを使用します。これらのフィールドは、レポートを表示するときにテーブル、グラフ、およびその他のレポート アイテムに表示できるデータを表します。

  • [グループ化と集計]   クエリでのグループ化と集計の使用を切り替えます。グループ化と集計を追加した後にグループ化と集計の機能をオフにすると、グループ化と集計が削除されます。[(なし)] は、グループ化と集計を使用しないことを示します。グループ化と集計の機能を再びオンにすると、以前のグループ化と集計が復元されます。

  • **[フィールドの削除]   **選択したフィールドを削除します。

グループ化と集計

大きなテーブルを持つデータベースに対してクエリを実行すると、レポート内では使用できないほど多数のデータ行が返され、大量のデータを転送するネットワークのパフォーマンスや、レポートを処理するレポート サーバーのパフォーマンスに悪影響を与える可能性があります。データベース サーバー上のデータを要約する SQL 集計をクエリに含めると、データ行の数を制限することができます。SQL 集計は、レポートを表示するときに適用されるクライアント側集計とは異なります。

集計ではデータの要約が返されます。データは、要約データを提供する集計をサポートするためにグループ化されます。クエリで集計を使用すると、そのクエリによって返される他のフィールドは自動的にグループ化され、クエリには SQL の GROUP BY 句が含まれます。[グループ化と集計] ボックスの一覧では、[グループ化] オプションだけを使用することによって、集計を追加せずにデータを要約できます。多くの集計には、DISTINCT キーワードを使用するバージョンが含まれています。DISTINCT を含めることで値の重複を排除できます。

Microsoft SQL Server では Transact-SQL が、Microsoft SQL Server 2008 R2 並列データ ウェアハウスでは SQL が使用されます。いずれの SQL 言語構文でも、クエリ デザイナーに用意されている句、キーワード、および集計がサポートされます。

Transact-SQL の詳細については、msdn.microsoft.com で、SQL Serverオンライン ブックの「Transact-SQL Reference (Database Engine)」を参照してください。

次の表では、集計の一覧を示し、それらについて簡単に説明します。

集計

説明

Avg

グループ内の値の平均を返します。SQL AVG 集計を実装します。

Count

グループ内のアイテム数を返します。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 つのテーブルが、後続するリレーションシップ内で参照されている必要があります。

    あるリレーションシップ内の両方のテーブルが、先行するリレーションシップによって参照されている場合、そのリレーションシップでは個別の JOIN 句が生成されません。その代わり、先行するリレーションシップに対して生成された JOIN 句に結合条件が追加されます。結合の種類は、同じテーブルを参照している先行するリレーションシップによって推測されます。

  • **[フィールドの編集]   **テーブル間でリレーションシップを追加したり変更したりする [関連フィールドの編集] ダイアログ ボックスが開きます。左右のテーブルを結合するフィールドを選択します。左右のテーブルの複数のフィールドを結合すると、リレーションシップ内で複数の結合条件を指定できます。左右のテーブルを結合する 2 つのフィールドは同じ名前でなくてもかまいません。結合されるフィールドのデータ型は、互換性のあるデータ型である必要があります。

  • **[リレーションシップの削除] **  選択したリレーションシップを削除します。

  • [上へ移動] および [下へ移動]   [リレーションシップ] ボックスの一覧内のリレーションシップを上下に移動します。クエリ内のリレーションシップの配置順によっては、クエリ結果に影響が出る場合があります。リレーションシップがクエリに追加される順序は、[リレーションシップ] ボックスの一覧内でリレーションシップが表示される順序と同じです。

次の列が表示されます。

  • **[左テーブル]   **結合リレーションシップの一部である最初のテーブルの名前を表示します。

  • [結合の種類]   自動的に生成されるクエリで使用される SQL の JOIN ステートメントの種類を表示します。既定では、外部キー制約が検出された場合は INNER JOIN が使用されます。その他の結合の種類は LEFT JOIN または RIGHT JOIN です。これらのいずれの結合の種類も当てはまらない場合は、[結合の種類] 列に [リレーションシップなし] と表示されます。リレーションシップのないテーブルには CROSS JOIN 結合は作成されません。代わりに、左右のテーブルの列を結合することでリレーションシップを手動で作成する必要があります。JOIN の種類の詳細については、msdn.microsoft.com にある SQL Serverオンライン ブックの「結合の基礎」を参照してください。

  • **[右テーブル]   **結合リレーションシップの 2 番目のテーブルの名前を表示します。

  • **[結合フィールド]   **結合されたフィールドのペアがコンマ (,) で区切られた結合条件がリレーションシップに複数ある場合に、結合されたフィールドのペアを一覧表示します。

適用されたフィルター ペイン

適用されたフィルター ペインには、実行時に取得されるデータの行数を制限するために使用される条件が表示されます。このペインで指定された条件を使用して SQL の WHERE 句が生成されます。パラメーター オプションを選択すると、レポート パラメーターが自動的に生成されます。クエリ パラメーターに基づくレポート パラメーターを使用すると、ユーザーがクエリの値を指定してレポートのデータを制御できるようになります。

次の列が表示されます。

  • **[フィールド名]   **条件を適用するフィールドの名前を表示します。

  • **[演算子]   **フィルター式で使用する演算を表示します。

  • **[値]   **フィルター式で使用する値を表示します。

  • **[パラメーター]   **クエリ パラメーターをクエリに追加するオプションを表示します。[データセットのプロパティ] を使用すると、クエリ パラメーターとレポート パラメーターの関係を表示できます。

クエリ結果ペイン

クエリ結果ペインには、その他のペインの選択内容によって指定されている自動的に生成されたクエリの結果が表示されます。結果セットの列は選択されたフィールド ペインで指定したフィールドで、行データは適用されたフィルター ペインで指定したフィルターによって制限されます。クエリに集計が含まれている場合、結果セットには新しい集計の列が含まれます。たとえば、Count 集計を使用して [色] 列を集計すると、クエリ結果に新しい列が含まれます。この列には既定で、Count_Color という名前が付けられます。

このデータは、クエリの実行時にデータ ソースから取得された値を表します。このデータはレポート定義に保存されません。レポートの実際のデータは、レポートの処理時に取得されます。

結果セットの並べ替え順序は、データがデータ ソースから取得された順序によって決まります。並べ替え順序は、クエリの修正によって変更することも、レポートのデータが取得された後に変更することもできます。

グラフィカルなクエリ デザイナーのツール バー

リレーショナル クエリ デザイナーのツール バーにある次のボタンを使用すると、クエリを指定したりその結果を表示したりすることができます。

ボタン

説明

[テキストとして編集]

テキスト ベースのクエリ デザイナーに切り替えて、自動的に生成されたクエリの表示や変更を行います。

[インポート]

ファイルまたはレポートから既存のクエリをインポートします。サポートされているファイルの種類は .sql と .rdl です。

[クエリの実行]

クエリを実行します。クエリ結果ペインに結果セットが表示されます。

自動的に生成されたクエリについて

データベース ビュー ペインでテーブルおよび列またはストアド プロシージャおよびビューを選択すると、クエリ デザイナーによって基になる主キーと外部キーのリレーションシップがデータベース スキーマから取得されます。クエリ デザイナーでは、これらのリレーションシップを分析することによって 2 つのテーブル間のリレーションシップが検出され、クエリに結合が追加されます。その後、グループと集計の追加、リレーションシップの追加または変更、フィルターの追加を行うことでクエリを変更できます。データの取得元である列を表示するクエリ テキスト、テーブル間の結合、グループまたは集計を参照するには、[テキストとして編集] をクリックします。

テキスト ベースのクエリ デザイナー

クエリを制御する最善の方法として、テキスト ベースのクエリ デザイナーを使用してください。テキスト ベースのクエリ デザイナーに切り替えるには、ツール バーの [テキストとして編集] をクリックします。テキスト ベースのクエリ デザイナーでクエリを編集すると、リレーショナル クエリ デザイナーは使用できなくなります。クエリは、常にテキスト ベースのクエリ デザイナーで開かれるようになります。詳細については、「テキストベースのクエリ デザイナーのユーザー インターフェイス (レポート ビルダー 3.0)」を参照してください。

関連項目

その他の技術情報