簡體   English   中英

Microsoft Access 2003查詢 - 計算記錄並對其求和

[英]Microsoft Access 2003 Query - Count records and sum it

我正在使用Microsoft Access 2003創建查詢並遇到問題。 我是新來的!

我有兩張桌子。 第一個表,我有一個包含名稱屬性名稱國家/地區狀態的記錄列表。 第二個表,我有一個屬性名稱列表, 屬性中 的單位數和屬性的國家/地區狀態

我想計算第一個表中的狀態記錄數,同時總結該地產所在單位的數量。

我遇到的是,當我總結單位數時,單位重復!

舉個例子;

表格1:

名稱| 國家| 物業名稱

先生1 | 州A | 建立AAA

先生2 | 州A | 建立AAA

先生3 | 州A | 建設BBB

先生4 | 州B | 建設XXX

先生5 | 州B | 建設XXX

表2:

物業名稱| 國家| 單位的數量

建設AAA | 州A | 100

建設BBB | 州A | 50

建設XXX | 州B | 20

我的結果:

國家| 單位數| 沒有記錄

州A | 250 | 3

州B | 40 | 2

我想要的結果:

國家| 單位數| 沒有記錄

州A | 150 | 3

州B | 20 | 2

EXPANDED

假設您使用的是Access查詢構建器,則需要構造三個Select查詢:

1)Table1將是第一個查詢的源表。 在查詢中使用State字段兩次,首先作為Group By字段,第二個作為Count字段。 (任何字段都可以用於計數,因為您只對記錄數感興趣。)保存查詢以便在第三個查詢中使用。

在此輸入圖像描述

2)Table2將是第二個查詢的源表。 使用State字段作為Group By字段,Units字段作為Sum字段。 也保存此查詢。

在此輸入圖像描述

3)第三個查詢將把信息放在一起。 對於源,使用第一個和第二個查詢,在State字段上使用它們之間的連接。 選擇State字段(來自任一查詢)作為Group By Field,將第一個查詢中的CountOfState字段作為Sum字段,將第二個查詢中的SumofUnits字段作為Sum字段。

在此輸入圖像描述

雖然Access在生成最終結果時所完成的實際工作量不會改變,但可以通過編輯基礎SQL將這三個查詢合並到一個查詢中。

通過將Table1和Table2查詢插入到第三個最終結果查詢中來生成新查詢,該查詢位於INNER JOIN語句的任一側。 新查詢中的T1和T1是嵌入式查詢的別名,可消除引用這些查詢字段時的歧義。

無法使用查詢生成器創建新查詢(盡管原始的三個查詢為其提供了原始材料)。 相反,必須在查詢生成器的SQL視圖中編寫/粘貼/編輯SQL。

    SELECT T1.State AS State,
           Sum(T1.CountOfState) AS Records, 
           Sum(T2.SumOfUnits) AS Units
    FROM 
          (SELECT Table1.State, 
                  Count(Table1.State) AS CountOfState
           FROM Table1
           GROUP BY Table1.State) T1
    INNER JOIN 
           (SELECT Table2.State, 
                   Sum(Table2.Units) AS SumOfUnits
            FROM Table2
            GROUP BY Table2.State) T2
    ON T1.State = T2.State
    GROUP BY T1.State;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM