[英]Micrisoft Access finds entries within 30 minutes of each other for each user ID everyday
我正在嘗試進行查詢,以顯示從一個 ID 彼此輸入 30 分鍾的任何條目。 表單本身需要 30 多分鍾才能完成,所以我試圖過濾那些可能剛剛通過它並標記它們的人。
例如,我希望它標記這個:在此處輸入圖像描述
我有一個表格,每天更新以下字段(每當有人輸入在線表格時):EMP ID、日期/時間戳(日期和時間)、SbjNum/表格編號、案例 ID 和總數。
我嘗試了以下操作: SQL 在彼此 5 分鍾內查詢日期時間
但它似乎拉了太多相同的sbjnum,從而使我想要的更多?
SELECT [QueDooblo].[EMP_ID] AS EMP_ID, [QueDooblo].[Date] AS [Date], [QueDooblo].[SbjNum] AS SbjNum, [QueDooblo].[R_ID] AS Case ID, [QueDooblo].[Total] AS Total
FROM (SELECT QueDooblo.[EMP_ID], QueDooblo.[Date], QueDooblo.[SbjNum], QueDooblo.[IncentiveAmount], QueDooblo.[SIGREFUSED_O1], QueDooblo.[R_ID], QueDooblo.[Total] FROM QueDooblo GROUP BY QueDooblo.[EMP_ID], QueDooblo.[Amount], QueDooblo.[Date], QueDooblo.[SbjNum], QueDooblo.[IncentiveAmount], QueDooblo.[SIGREFUSED_O1], QueDooblo.[R_ID], QueDooblo.[Total]) AS a
INNER JOIN QueDooblo AS b ON a.[EMP_ID] = b.[EMP_ID]
WHERE (((DateDiff("n",[a].[Date],[b].[Date]))<30));
我試着做一個常規的 JOIN 但它不起作用......並在 Where WHERE (((DateDiff("n",[a].[Date],[b].[Date]))<30) AND a.[SbjNum] <> b.[SbjNum] AND a.[EMP_ID] <> 0);
下添加WHERE (((DateDiff("n",[a].[Date],[b].[Date]))<30) AND a.[SbjNum] <> b.[SbjNum] AND a.[EMP_ID] <> 0);
我正在做的只是復制這些數據並放入 Excel 工作表並刪除重復項然后刪除任何其他重復信息
我還有另一個想法,也許我應該將日期/時間戳分開,這樣我就可以讓 Access 僅在 EMP ID = EMP ID 和日期相等時才可以找到,但時間彼此相隔 30 分鍾?
考慮一個相關的聚合子查詢來查找每個EMP_ID
的最后一個時間戳,然后使用它從子查詢中進行查詢。 下面返回每個員工距離上次不到 30 分鍾的所有記錄:
SELECT main.*, DateDiff('n', main.last_date, main.[Date]) AS mins_elapsed
FROM
(SELECT q.*,
(SELECT MAX(sub.[Date])
FROM QueDooblo AS sub
WHERE sub.[EMP_ID] = q.[EMP_ID]
AND sub.[Date] < q.[Date]) AS last_date
FROM QueDooblo q
) AS main
WHERE DateDiff('n', main.last_date, main.[Date]) < 30
ORDER BY main.EMP_ID, main.[Date];
如果您不希望員工在午夜填寫表格,請在相關子查詢中使用DateValue
添加日期相等。
...
(SELECT q.*,
(SELECT MAX(sub.[Date])
FROM QueDooblo AS sub
WHERE sub.[EMP_ID] = q.[EMP_ID]
AND DATEVALUE(sub.[Date]) = DATEVALUE(q.[Date])
AND sub.[Date] < q.[Date]) AS last_date
FROM QueDooblo q
) AS main
注意:相關的聚合子查詢很昂貴,因此會降低大型表的性能。 也許有一天 MS Access 會支持window 功能(請點贊和分享)? 為了提供幫助,如果在表單或報告后面使用,請考慮構建一個臨時表:
SELECT * INTO myTable FROM myQuery
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.