ACC2002:如何使用多重值欄位建立交叉資料表查詢

文章翻譯 文章翻譯
文章編號: 304458 - 檢視此文章適用的產品。
本文曾發行於 CHT304458
中級程度:需具有基本巨集、程式撰寫和交互操作性技巧。

本文僅適用於 Microsoft Access 資料庫 (.mdb)。

如需本文中的 Microsoft Access 2000 版本,請參閱 209143
全部展開 | 全部摺疊

結論

在 Microsoft Access 交叉資料表查詢中,您只能指定一個欄位或計算作為該值。您可能要在查詢中顯示一個以上的數值。

下列範例為每間公司顯示兩欄資訊、訂單數目和每年的訂單總計:
   公司                1998 年訂單  1998 年總計  1999 年訂單  1999 年總計
   --------------------------------------------------------------
   ABC 公司            12           $855.00      15           $1010.25
   XYZ 公司            1017         $22045.57    1050         $25345.29
此類的查詢有時稱為「多重值欄位」查詢。

其他相關資訊

如果要建立多重值欄位交叉資料表查詢,必須為每個要計算的值建立個別的交叉資料表查詢。您稍後就可使用選取查詢來聯結這些交叉資料表查詢以顯示所要的結果。

以下範例使用範例資料庫 Northwind.mdb 來建立查詢,其結果與本文先前〈摘要〉一節中的範例相似。其顯示每間公司每年的銷售數字和總計。
  1. 開啟範例資料庫 Northwind.mdb,再建立以 Orders (訂單)、Order Details (訂單詳細資料) 和 Customers (客戶) 資料表為基礎的下列交叉資料表:
       Query: Order Total
       ------------------
       Type: Crosstab Query
       Join: Customers.[CustomerID] <-> Orders.[CustomerID]
       Join: Orders.[OrderID] <-> Order Details.[OrderID]
    
       Field: CompanyName
          Table Name: Customers
          Total: Group By
          Crosstab: Row Heading
    
       Field: Expr1: Year([OrderDate]) & " " & "Order Total"
          Table Name:
          Total: Group By
          Crosstab: Column Heading
    
      Field: Expr2: Sum(CCur([UnitPrice]*[Quantity]*(1-[Discount])))
          Table Name:
          Total: Expression
          Crosstab: Value
  2. 將此查詢儲存為 Order Total
  3. 建立以 Orders 和 Customers 資料表為基礎的下列交叉資料表查詢:
       Query: Order Count
       ------------------
       Type: Crosstab Query
       Join: Customers.[CustomerID] <-> Orders.[CustomerID]
    
       Field: CompanyName
          Table Name: Customers
          Total:      Group By
          Crosstab:   Row Heading
    
       Field: Expr1: Year([OrderDate]) & " " & "Order Count"
          Table Name:
          Total: Group By
          Crosstab: Column Heading
    
    
       Field: OrderID
          Table Name: Orders
          Total:      Count
          Crosstab:   Value
  4. 將此查詢儲存為 Order Count
  5. 建立以 Order Total 和 Order Count 交叉資料表查詢為基礎的查詢。使用您要檢視其結果年份的 CompanyName、Order Total 和 Order Count 欄位。以下範例在 Microsoft Access 中使用最後兩年的 Order Total 和 Order Count。
       Query: Multiple Values
       ----------------------
       Join: Order Total.[CompanyName] <-> Order Count.[CompanyName]
    
       Field: CompanyName
          Table Name: Order Count
    
       Field: 1997 Order Count
          Table Name: Order Count
    
       Field: 1997 Order Total
          Table Name: Order Total
    
       Field: 1998 Order Count
          Table Name: Order Count
    
       Field: 1998 Order Total
          Table Name: Order Total
  6. 當您執行多重值查詢時,會看到和以下類似的資料表:
                             1997 年訂單  1997 年訂單  1998 年訂單 1998 年訂單
       公司名稱                   數目       總計       數目       總計
       --------------------------------------------------------------------
       Alfred's Futterkiste        3      $2,022.50        3      $2,022.50
       Ana Trujillo                 2        $799.75           1        $514.10
       Antonio Moreno            5      $5,960.78         1        $660.00
    注意 :如果指定給該串聯的欄位是在加入查詢之一個以上的資料表中的欄位,您必須將資料表名稱新增到運算式中。例如,在步驟 1,必須將:
       Year([OrderDate]) & " " & "Order Total"
    變更為:
       Year([Orders].[OrderDate]) & " " & "Order Total"
    若您將資料表名稱新增到 Table 列,會產生語法錯誤。如果您完全省略資料表名稱,會產生不明確的參考錯誤。

?考

如需關於交叉資料表查詢的詳細資訊,按一下 [說明] 功能表上的 [Microsoft Access 說明] ,在「Office 小幫手」或「解答精靈」中鍵入交叉資料表查詢 ,再按一下 [搜尋] 檢視傳回的主題。


本文件是根據 Microsoft Knowledge Base 文件編號 Q304458 翻譯的。若要參考原始英文文件內容,請至以下網址:

http://support.microsoft.com/support/kb/articles/Q304/4/58.asp

屬性

文章編號: 304458 - 上次校閱: 2003年11月12日 - 版次: 1.0
這篇文章中的資訊適用於:
  • Microsoft Access 2002 Standard Edition
關鍵字:?
kbhowto kbdta KB304458
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com