Ms-Access
訪問查詢 - 計算不同的值
我在 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;