我的数据可以追溯到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')


如何引用其他工作表中的列用作“模式”而不是除以实际数字?由于不同月份的模式不同,使用实际数字会导致其他月份的输出错误。

最佳答案

您需要每月为您的模式创建一个单独的表,然后使用JOIN获取该值并使用它。

像这样:

SELECT
    LD.Period,
    LD.EmOrg,
    LD.EmType,
    Sum(LD.RegHrs) AS 'Total Hours',
    Sum(LD.RegHrs) / M.Mode As 'FTE_S'
FROM
    SSI.dbo.LD LD
INNER JOIN SSI.dbo.Mode M
    ON LD.Period = M.Period -- Not sure its should be Period or Month
GROUP BY LD.Period , LD.EmOrg , LD.EmType
HAVING (LD.EmOrg Like '%T00')
    AND (LD.EmType = 'S')

关于mysql - 使用2个工作表在sql中进行计算,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21015234/

10-12 12:41
查看更多