【发布时间】:2014-01-27 17:01:41
【问题描述】:
我需要处理可追溯到 2004 年的数据,因此必须简化从使用 Excel 到使用 SQL 的计算,以节省处理时间和服务器压力。
我的数据是:
Period Employee EmOrg EmType Total Hours Mode
201306 GOVINP1 RSA/PZB/T00 S 180 66
201306 LANDCJ1 RSA/PZB/T00 S 200 35
201306 WOODRE RSA/PZB/T00 S 180 34
201306 MOKOHM1 RSA/JNB/T00 S 160 33
201306 KAPPPJ RSA/PLZ/T00 S 160 32
201306 CAHISJ RSA/PZB/T00 S 187 31
201306 ZEMUN RSA/PZB/T00 S 180 31
201306 SAULDD1 RSA/PZB/T00 S 190 28
201306 JEROP1 RSA/DUR/T00 S 188 26
201306 NGOBS1 RSA/PZB/T00 S 204 24
201306 ZONDNS2 RSA/PZB/T00 S 192 23
201306 DLAMMP RSA/PZB/T00 S 201 23
201306 MPHURK RSA/PLZ/T00 S 160 22
201306 MNDAMB RSA/PZB/T00 S 188 21
我想要的结果是:
Period EmOrg EmType TotalHours FTE S
201308 RSA/BFN/T00 S 198 1
201308 RSA/CPT/T00 S 744 3.757575
201308 RSA/DUR/T00 S 805 4.065656
201308 RSA/JNB/T00 S 396 2
201308 RSA/PLZ/T00 S 563 2.843434
201308 RSA/PTA/T00 S 594 3
201308 RSA/PZB/T00 S 4882 24.656565
我的查询:
SELECT
LD.Period,
LD.EmOrg,
LD.EmType,
Sum(LD.RegHrs) AS 'Total Hours',
Sum(LD.RegHrs) / 198 As 'FTE_S'
FROM
SSI.dbo.LD LD
GROUP BY LD.Period , LD.EmOrg , LD.EmType
HAVING (LD.EmOrg Like '%T00')
AND (LD.EmType = 'S')
如何引用不同工作表中的列以用作我的模式,而不是除以实际数字?因为不同月份有不同的模式,使用一个实际的数字会在其他月份给出错误的输出。
【问题讨论】:
-
请提供一些原始表格数据。你的架构是什么?
-
Period Employee EmOrg EmType Total Hours Mode 201306 GOVNP1 RSA/PZB/T00 S 180 66 201306 LANDCJ1 RSA/PZB/T00 S 200 35 201306 WOODRE RSA/PZB/T00 S 180 34 201306 MO /T00 S 160 33 201306 KAPPPJ RSA/PLZ/T00 S 160 32 201306 CAHISJ RSA/PZB/T00 S 187 31 201306 ZEMUN RSA/PZB/T00 S 180 31 201306 SAULDD1 RSA/PZB/T0130 S 19EROP10 28 /T00 S 188 26 201306 NGOBS1 RSA/PZB/T00 S 204 24 201306 ZONDNS2 RSA/PZB/T00 S 192 23 201306 DLAMMP RSA/PZB/T00 S 201 23 201306 MPHURK RSA/PLZ/T0130 S MNDA 2 /T00 S 188 21 我在第一个电子表格中使用的数据示例
-
不适用于您的问题。