【发布时间】:2014-11-27 23:17:24
【问题描述】:
我正在尝试在给定表上实现单一视图:
Table:LeaseLog
------------------------------------------------------------------------------------
action license timeStamp
------------------------------------------------------------------------------------
Lease ----YYB-------- 2014-07-18 14:30:36.000 <br/>
Release --YYB-------- 2014-07-18 15:17:11.000 <br/>
Lease ----AAR-------- 2014-07-18 14:40:23.000 <br/>
Release ---AAR ------- 2014-07-18 15:38:41.000 <br/>
Lease ---AAR---------- 2014-07-18 15:41:16.000 <br/>
Lease ---YYB---------- 2014-07-19 07:53:06.000 <br/>
Release ----YYB------ 2014-07-19 08:07:51.000 <br/>
Lease ----YYB--------- 2014-07-19 08:12:43.000 <br/>
Release ----AAR------ 2014-07-19 08:19:59.000 <br/>
目标是在租用和发布时间戳之间的几小时或几分钟内找到每个已使用许可证的许可证利用率。
i 对于每个许可证密钥:遍历租约并发布:ConvertIntoHours(LeaseTimeStamp - ReleaseTimeStamp)
ii) Sum(i) 按许可证分组
输出应该是这样的:
license TotalUtilzation(Hours)
----------------------------------------------
YYB --------- 160.20 <br/>
AAR ---------- 380 <br/>
我设法编写了脚本,该脚本将使用以下脚本给出给定日期时间的租赁和释放总小时数
SELECT x.license,
SUM(CASE WHEN action='lease' THEN ((DATEPART(hh,timeStamp)*60)+DATEPART(mi,timeStamp)+(DATEPART(ss,timeStamp)/(60.0))) ELSE 0 END)/60.0 as Lease,
SUM(CASE WHEN action='release'THEN ((DATEPART(hh,timeStamp)*60)+DATEPART(mi,timeStamp)+(DATEPART(ss,timeStamp)/(60.0))) ELSE 0 END)/60.0 as Release
FROM [RxDatabase].[dbo].[LeaseLog]AS x
GROUP BY license
而且我知道这并没有给出正确的结果。
感谢任何帮助。
【问题讨论】:
标签: sql-server datetime calculated-columns