Ms-Access

訪問查詢 - 計算不同的值

  • September 27, 2017

我在 Access 中有一個類似於下面的數據集:

在此處輸入圖像描述

我想創建一個查詢,該查詢生成一個表格,總結每家公司所在的網站數量。即它將返回如下​​內容:

Alpha - 2

Bravo - 2

Charlie - 2

Delta - 2

我已經嘗試創建一個簡單地計算站點欄位的查詢,但是如果重複,這會多次計算同一個站點。我的目標是只計算每個站點一次。

有沒有人有一種簡單的方法可以在 Access 的查詢設計中實現這一點?

這裡的關鍵概念是您必須創建多個查詢。並非所有結果都可以通過單個查詢獲得。可以使用 SQL 子查詢(也稱為嵌套查詢)來完成此操作,以便可以將整個查詢作為一個單元進行保存和編輯,但是查詢設計器不支持子查詢——它們必須在 SQL 視圖中進行編輯。

一些數據庫系統支持聚合函式,可以在一個查詢中直接計算不同的值。Access 不支持這樣的功能,因此您必須首先編寫一個查詢來獲取 Site 列的不同值。一個查詢總是可以像引用一個表一樣引用另一個查詢。

儘管問題特別提到了設計視圖(查詢設計器),但在 Stack Exchange 站點上,傳統的做法是將查詢共享為 SQL 文本。不斷粘貼螢幕截圖太乏味了。此外,可以將 SQL 文本直接複製並粘貼到 SQL 視圖中。至少您應該知道/學習如何切換到 SQL 視圖,以便您可以在那裡複製和粘貼。對於基本的 SQL 語句,只需切換回設計視圖。

SELECT Company, Site FROM table GROUP BY Company, Site

要麼

SELECT DISTINCT Company, Site FROM table

DISTINCT 關鍵字對應於設計視圖屬性Unique Values = True。例如,將該查詢另存為CompanySites

現在計算已保存查詢中的值:

SELECT Company, Count(Site) As Sites FROM CompanySites

您可能需要考慮通過添加單獨的

$$ Company $$和$$ Site $$具有適當主鍵和外鍵的表。

嘗試這個

SELECT  Company ,
       COUNT(Site)
FROM    ( SELECT    Company ,
                   Site
         FROM      Mytable
         GROUP BY  Company ,
                   Site
       ) AS T;

引用自:https://dba.stackexchange.com/questions/186994