【发布时间】:2021-09-06 14:12:10
【问题描述】:
我有一个名为 Audit 的表,如下所示:
| ID | Record | AccessedDTTM |
|---|---|---|
| 16 | Sign In | 2021-03-23 04:41:33.770 |
| 16 | Session End - Sign Out | 2021-03-23 04:42:33.770 |
| 17 | Sign In | 2021-03-01 00:03:04.070 |
| 17 | Session End - Sign Out | 2021-03-01 00:33:52.717 |
| 18 | Sign In | 2021-03-01 01:31:00.527 |
| 18 | Schedule | 2021-03-01 01:31:31.407 |
| 18 | Charge | 2021-03-01 01:43:27.427 |
| 18 | Session End - Sign Out | 2021-03-01 01:47:27.940 |
我需要计算 ID 为 16 和 18 的用户访问的持续时间。持续时间应基于他们的登录记录和会话结束 - 退出条目。
我试过这个查询: select DateDiff(second, (Select AccessedDTTM from Audit Where Record = 'Sign In'), (Select AccessedDTTM from Audit Where Record = 'Session End - Sign Out')) 作为持续时间 Foom 审计 ID 在哪里 (16, 18)
但我收到如下错误: 子查询返回超过 1 个值。当子查询跟随 =、!=、、>= 或子查询用作表达式时,这是不允许的。
有人可以帮助我进行正确的查询以实现此结果吗?提前致谢!
【问题讨论】:
-
跳过子查询,改为 JOIN。
-
用您正在使用的数据库标记您的问题。