我有一些相關的表,我想在其上運行總計/分組依據查詢。
我的“Tickets”表有一個名為“PickDate”的欄位,它是訂單/票完成的日期。
我想按作業日(名稱)(計算欄位)分組,以便對一周中同一天的某些客戶的結果進行分組。然后可以計算每個客戶每個作業日的平均票務完成時間。它看起來像下面這樣。
--CustName---Day---AvTime
Customer 1 - MON - 72.3
- TUE - 84.2
- WED - 110.66
..etc
..etc
..etc
Customer 2 ..
這作業正常,但我遇到的問題是,當運行此查詢時,它適用于票證表中的每條記錄。出于某些原因,對于某些報告,查詢所參考的資料應限制在某個日期范圍內;例如,跟蹤數周內持續時間的變化。
在查詢屬性中,有一個屬性“過濾器”,我可以向其中添加一個字串,例如:
"([qryCustomerDetails].[PickDate] Between #11/1/2021# And #11/14/2021#)"
過濾結果。唯一的問題是,由于每個日期都是唯一的,因此“星期一”等類似日期的“分組依據”會被這個唯一日期“11/1/2021”覆寫。該查詢僅在 PickDate 作為欄位被洗掉時才有效。但是,我無法訪問它來過濾它。
我想要實作的目標是一樣的;在“Tickets”表本身過濾兩個日期之間的結果,然后有一個可以在該過濾表上運行的查詢。
有什么辦法可以實作這一目標嗎?
參考這里是查詢的SQL。
FROM tblCustomers INNER JOIN tblTickets ON tblCustomers.CustomerID = tblTickets.CustomerID
GROUP BY tblCustomers.Customer, WeekdayName(Weekday([PickDate]),False,1), tblCustomers.Round, Weekday([PickDate])
ORDER BY tblCustomers.Round, Weekday([PickDate]);
uj5u.com熱心網友回復:
您可能遇到了兩個問題。第一個問題是要按未總計欄位過濾總計查詢中的結果,您使用 HAVING 而不是 WHERE。第二個問題是像 Day 這樣的計算欄位在查詢時不存在。你不能說有 Day > Mon。相反,您必須重復 Day 的計算: Had CalculateDay(PickDate) > Monday 設計人員通常會自動確定您是否想要擁有或在哪里擁有。所以這是我的例子:

這為您提供了 SQL:
SELECT Tickets.Customer, WeekdayName(Weekday([PickDate])) AS [Day], Avg(Tickets.Time) AS AvTime
FROM Tickets
GROUP BY Tickets.Customer, WeekdayName(Weekday([PickDate])), Tickets.PickDate
HAVING (((Tickets.PickDate) Between #11/16/2021# And #11/17/2021#))
ORDER BY Tickets.PickDate;
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/361239.html
上一篇:Xamarin自定義控制元件
