【发布时间】:2016-07-27 23:47:02
【问题描述】:
数据如下: 表 1:
usernum|username
-------|--------
1 |JBlow
-------|--------
2 |CFarley
表 2:
usernum|logdate |actionnum |extrainfo1
-------|-----------------------|----------|-----------
1 |2016-06-27 10:36:55.033| 202 |50
-------|-----------------------|----------|-----------
1 |2016-06-27 10:40:37.800| 266 |8
-------|-----------------------|----------|-----------
2 |2016-06-27 10:43:18.817| 202 |23
-------|-----------------------|----------|-----------
2 |2016-06-27 10:48:32.413| 266 |7
我要做的是加入“Usernum”上的表,以便我可以在结果中获取用户名。
接下来,我想使用 datediff 来计算表 2 中日志日期之间的时间(以分钟为单位)。表 2 中的每个条目都有一个与之关联的 actionnum。在这种情况下,我想找出与 actionnum 202(start) 关联的 logdate 和与 actionnum 266(end) 关联的 logdate 之间的区别。
我还想仅包含 202 个 actionnum 行中的 extrainfo1。
我正在寻找的最终结果将包含以下列: 用户名,{datediff 结果},extrainfo1
这是我提出的一个查询,它将显示用户名、logdate、extrainfo1 和 actionnum。我用子查询尝试了 datediff 函数,但无法让它工作,但我不是专家。
SELECT a.username, b.logdate, b.extrainfo1 AS 'DocumentCount', b.actionnum
FROM hsi.useraccount a
LEFT JOIN hsi.scanninglog b
ON a.usernum = b.usernum
WHERE b.actionnum = 266
OR b.actionnum = 202
GROUP BY a.username,b.logdate, b.extrainfo1, b.actionnum
提前感谢您的帮助!
【问题讨论】:
-
表示你只有两条记录,1 |2016-06-27 10:36:55.033| 202 |50 --------|-----------|------------|---- ------- 1 |2016-06-27 10:40:37.800| 266 |8 因为我只是在想如果它是列表中的 3 条记录怎么样
标签: sql sql-server join datediff