現在オフラインです。再接続するためにインターネットの接続を待っています

複数値フィールドを使用してクロス集計クエリを作成する方法

Office 2003 のサポートは終了しました

マイクロソフトでは、2014 年 4 月 8 日に Office 2003 のサポートを終了しました。この変更は、ソフトウェアの更新プログラムおよびセキュリティ オプションに影響しています。 この変更の意味および保護された状態を維持する方法について説明します。

難易度 : 中。基本的なマクロ、コーディング、相互運用性に関する知識が必要です。

この資料は Microsoft Access データベース (.mdb) についてのみ記述したものです。

Microsoft Access 2000 については、次の資料を参照してください。209143
Microsoft Access 97 については、次の資料を参照してください。109939
概要
Microsoft Access のクロス集計クエリでは、値としてフィールドまたは計算結果を 1 つだけ指定することができますが、クエリで複数の値を表示することが必要な場合もあります。

以下の例では、会社ごとの受注数および受注総額を示す 2 列の情報を、年ごとに表示しています。
   Company Name  1998 Orders  1998 Total  1999 Orders  1999 Total   --------------------------------------------------------------   ABC Company   12           $855.00     15           $1010.25   XYZ Company   1017         $22045.57   1050         $25345.29				
この種のクエリは、複数値フィールド クエリと呼ばれる場合があります。
詳細
複数値フィールドを使用したクロス集計クエリを作成するには、計算対象の各値に対して個別にクロス集計クエリを作成する必要があります。次に、選択クエリを使用して、これらのクロス集計クエリを結合し、目的の結果を表示します。

次の例では、Northwind.mdb サンプル データベースを使用して、この資料の「概要」の例に類似した結果を表示するクエリを作成しています。ここでは、会社ごとの各年の受注数と受注総額を表示します。
  1. Northwind.mdb サンプル データベースを開き、受注テーブル、受注明細テーブル、および得意先テーブルに基づいて次のクロス集計クエリを作成します。
       クエリ: Order Total   ------------------   種類 : クロス集計クエリ   結合 : 得意先.[得意先コード] <-> 受注.[得意先コード]   結合 : 受注.[受注コード] <-> 受注明細.[受注コード]   フィールド : 得意先名      テーブル : 得意先      集計 : グループ化      行列の入れ替え : 行見出し   フィールド : 式1: Year([受注日]) & " " & "Order Total"      テーブル :      集計 : グループ化      行列の入れ替え : 列見出し   フィールド : 式2: Sum(CCur([単価]*[数量]*(1-[割引])))      テーブル :      集計 : 演算      行列の入れ替え : 値					
  2. このクエリを Order Total として保存します。
  3. 受注テーブルおよび得意先テーブルに基づいて、次のクロス集計クエリを作成します。
       クエリ : Order Count   ------------------   種類 : クロス集計クエリ   結合 : 得意先.[得意先コード] <-> 受注.[得意先コード]   フィールド : 得意先名      テーブル : 得意先      集計 : グループ化      行列の入れ替え : 行見出し   フィールド : 式1: Year([受注日]) & " " & "Order Count"      テーブル :      集計 : グループ化      行列の入れ替え : 列見出し   フィールド : 受注コード      テーブル : 受注      集計 : カウント      行列の入れ替え : 値					
  4. このクエリを Order Count として保存します。
  5. Order Total クロス集計クエリおよび Order Count クロス集計クエリに基づいたクエリを作成します。結果として表示する年次に対して、"得意先名" フィールド、Order Total フィールド、および Order Count フィールドを使用します。次の例では、Microsoft Access で Order Total および Order Count の最後の 2 年を使用しています。
       クエリ : Multiple Values   ----------------------   結合 : Order Total.[得意先名] <-> Order Count.[得意先名]   フィールド : 得意先名      テーブル : Order Count   フィールド : 1997 Order Count      テーブル : Order Count   フィールド : 1997 Order Total      テーブル : Order Total   フィールド : 1998 Order Count      テーブル : Order Count   フィールド : 1998 Order Total      テーブル : Order Total					
  6. 複数値クエリを実行すると、次のようなテーブルが表示されます。
                        1997 Order  1997 Order    1998 Order  1998 Order   得意先                 Count       Total         Count       Total   ------------------------------------------------------------------   アリス亭                    3      ¥118,300          1       ¥94,700   イルカランド                2      ¥116,100          1       ¥82,800   コーヒーハウスフェンス       2      ¥194,000          1       ¥76,300					
    : 結合するように指定されているフィールドが、クエリで結合する複数のテーブルにある場合、テーブル名を式に追加する必要があります。たとえば、手順 1. を以下のように変更します。
       Year([受注日]) & " " & "Order Total"					
    上記を次のように変更します。
       Year([受注].[受注日]) & " " & "Order Total"					
    テーブル名を [テーブル] 行に追加すると、構文エラーが発生します。テーブル名をまったく入力しないと、参照があいまいであるというエラーが表示されます。
関連情報
クロス集計クエリの詳細については、[ヘルプ] メニューの [Microsoft Access ヘルプ] をクリックします。次に、Office アシスタントまたはアンサー ウィザードにクロス集計クエリと入力し、[検索] をクリックして表示されるトピックを参照してください。
ACC2002 reviewdocid
プロパティ

文書番号:304458 - 最終更新日: 03/06/2006 07:40:07 - リビジョン: 5.4

Microsoft Office Access 2003, Microsoft Access 2002 Standard Edition

  • kbquery kbhowto KB304458
フィードバック