我无法汇总存储在 SQL 事实表中的电话通话时间
我有一个电话通话时间的 SQL 表,按人分类,在 Cognos Analytics 数据模块中使用。
我想在交叉表中使用这些数据,并以 HH:MM:SS 报告每个人的总通话时间。
当我尝试总计时间时,SQL 列的格式为 time(0),Cognos 抛出 [MSR-VRF-1202 The column "Call Length" has the data type "time" and can't be aggregated] 错误。
显示总通话时间的正确方法是什么。
更新
通过在 Cognos Anaytics 中使用大量查询计算,我已经成功解决了一半的问题。我更新了 SQL 事实表以包含以秒为单位的新时间度量,然后使用下面的查询项。
HH as FLOOR(TOTAL([CALLTIMEINSECONDS])/3600)
MM as FLOOR(([CALLTIMEINSECONDS]-[HH]*3600)/60)
SS 为 [CALLTIMEINSECONDS]-([HH]*3600)-([MM]*60)
HH1 为 IF ([HH]<10) THEN ('0'+CAST([HH],VARCHAR(4))) ELSE (CAST([HH],VARCHAR(4)))
MM1 作为 IF (MM<10) THEN ('0'+CAST(MM,VARCHAR(2))) ELSE (CAST(MM,VARCHAR(2)))
SS1 作为 IF (SS<10) THEN ('0'+CAST(SS,VARCHAR(2))) ELSE (CAST(SS,VARCHAR(2)))
一直为 [HH1]+':'+[MM1]+':'+[SS1]
这适用于单个交叉表行,但不会汇总,也不适用于任何图表。