Ms-Access
如何在 MS 訪問中創建這樣的查詢,以便僅顯示超過 3 個預訂的客戶?
我有兩個不同的表,“客戶”表,“客戶 ID”作為主要欄位,還有一些欄位,如姓名、姓氏等(全部為文本格式)。
第二個表是“Booking details”,它的主鍵是“Booking ID”,然後是客戶姓名、姓氏等,(同樣,都是文本)
所以,基本上,在預訂詳細資訊表中,每個預訂都有一個唯一的預訂 ID,一個客戶可以進行多個預訂,我想創建一個查詢,只對超過 3 個預訂的客戶進行排序?
SELECT Customers.Customer_ID FROM Customers INNER JOIN Bookings ON Customers.Customer_ID = Bookings.Customer_ID GROUP BY Customers.Customer_ID HAVING COUNT(Customers.Customer_ID) > 3
視覺上(有些術語是近似的,因為我沒有英文界面的 MS Access):
- 將兩個表都添加到查詢窗格
- 通過適當的領域加入他們
- 從客戶表中選擇要輸出的欄位,不要從預訂表中添加欄位
- 按下功能區上的總計旋鈕
- 在欄位列表中再添加一個Customers.Customer_ID
- 將其Grouping 功能從Grouping by更改為Count
- 將此欄位的條件設置為*>3*
- 如果您不需要其值,請取消選中顯示
解決此問題的一種方法是連接兩個表並按 Customer_ID 對結果進行分組,這樣您就可以計算出現次數並過濾出現次數超過 3 次的那些:
select c.Customer_ID as customer count(c.Customer_ID) as bookings from Customers c inner join Boockings b on c.Customer_ID = b.Customer_ID group by c.Customer_ID having bookings > 3;