对不起这个问题的通用标题,但我不知道该怎么说。所以这里是:
我有一个包含以下信息的表:
computerName | userName | date | logOn | startUp
| | | |
ID_000000001 | NULL | 2012-08-14 08:00:00.000 | NULL | 1
ID_000000001 | NULL | 2012-08-15 09:00:00.000 | NULL | 0
ID_000000003 | user02 | 2012-08-15 19:00:00.000 | 1 | NULL
ID_000000004 | user02 | 2012-08-16 20:00:00.000 | 0 | NULL
我想计算机名和用户名是不言自明的
logOn
是1
用户在机器上0
登录和注销的时间。
startUp
是1
机器打开和0
关闭的时间。
另一个条目总是NULL
分别,因为我们不能同时登录和启动。
现在我的任务是:找出上个月(或任何给定时间,但现在假设一个月)哪些计算机开启的时间最少。这甚至可以用 SQL 实现吗?<-- 小心:我不需要知道电脑打开了多少次,而是每台电脑在给定的时间空间内打开了多少小时/分钟
还有两个小问题:
我们不能说每台计算机的第一个条目是1
列中startUp
的,因为记录这些事件的脚本是最近安装的,因此可能在开始记录时计算机已经在运行。
我们不能假设如果我们按顺序排序date
并且只显示startUp
条目将全部交替为 1 和 0 的列,因为如果通过拔出插头强制关闭计算机,则不会有关闭日志,并且可能连续两个 1。
编辑:userName
当有值时当然是 NULL startUp
,因为打开/关闭不会显示哪个用户这样做。