基本上,此查詢假設計算用戶登錄到我們的應用程序的時間(分鐘)。它可能很簡單,但我現在無法理解它。我遇到的問題是,有時候我們的一兩個用戶會有時間毫無意義。這樣一個用戶有一天會有23分鐘的時間,而下一個用戶的時間應該幾乎相同。爲什麼此SQL查詢返回計算時間錯誤?
示例數據:
+----------------+----------+
| ava_modifiedby | Time |
+----------------+----------+
| RSCHIFFELBEIN | 20:22:08 |
| TMORRIS | 13:41:57 |
| TATKINS | 13:23:01 |
| MATTECH1 | 07:59:49 |
| R5 | 07:02:23 |
+----------------+----------+
SELECT DISTINCT
A.ava_modifiedby,
CONVERT(VARCHAR, DATEADD(ss, ((SUM(DATEPART(hh, A.ava_changed) * 3600 + DATEPART(mi, A.ava_changed) * 60 + DATEPART(ss, A.ava_changed)) - SUM(DATEPART(hh, B.ava_changed) * 3600 + DATEPART(mi, B.ava_changed) * 60 + DATEPART(ss, B.ava_changed))) % 86400), 0), 108) AS TIME
FROM R5AUDVALUES A
LEFT OUTER JOIN R5AUDVALUES B ON A.ava_primaryid = B.ava_primaryid
WHERE A.ava_table = 'R5SESSIONS'
AND A.ava_deleted = '+'
AND A.ava_to IS NULL
AND B.ava_table = 'R5SESSIONS'
AND B.ava_inserted = '+'
AND B.ava_from IS NULL
AND A.ava_modifiedby <> '*'
AND B.ava_modifiedby <> '*'
GROUP BY A.ava_modifiedby
請告訴我們的模式和一些示例數據與奇怪你描述 – n8wrl
我現在看到示例數據,但我不明白你在哪裏確定登錄時間 – n8wrl
我不太確定我自己,因爲這是一個我沒有經歷過的數據庫。我很確定他們從不同的來源獲得,然後這個查詢解決了總時間。 –