基本的に、このクエリは、ユーザーがアプリケーションにログオンする時間を計算することを想定しています。それはおそらく単純なものですが、私はただ今それを把握することはできません。私が抱えている問題は、時には1人または2人のユーザーが意味をなさない時代を迎えることです。そのような1人のユーザーは23分を1日とし、次はそれほど同じでなければなりません。なぜこの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
これは私が経験したことのないデータベースなので、私は彼らが別のソースからそれを引っ張ったと確信しています、そして、このクエリは合計時間を解決します。 –