总时间的百分比

时间:2017-05-17 06:00:31

标签: sql-server left-join inner-join percentage

我想计算每个ASSIGNEE_NAME的总时间百分比

select
ROUND(CAST(
(
select 
CAST(AVG(DATEDIFF(SECOND,  INF_TOWORK_TIME, INF_EXECUTE_TIME))as VARCHAR(10))
FROM [dbo].[PROBSUMMARYM1] IM
INNER JOIN [dbo].[MYGROUPSM1] MG on MG.ID = IM.ASSIGNEE_NAME
LEFT JOIN [dbo].[SCRELATIONM1] SC on IM.INCIDENT_ID = SC.SOURCE_ACTIVE
GROUP BY ASSIGNEE_NAME
)AS nvarchar),5)*100./
(
select 
CAST(AVG(DATEDIFF(SECOND,  INF_TOWORK_TIME, INF_EXECUTE_TIME))as VARCHAR(10))
FROM [dbo].[PROBSUMMARYM1] IM
INNER JOIN [dbo].[MYGROUPSM1] MG on MG.ID = IM.ASSIGNEE_NAME
LEFT JOIN [dbo].[SCRELATIONM1] SC on IM.INCIDENT_ID = SC.SOURCE_ACTIVE
)
FROM [dbo].[PROBSUMMARYM1] IM
INNER JOIN [dbo].[MYGROUPSM1] MG on MG.ID = IM.ASSIGNEE_NAME
LEFT JOIN [dbo].[SCRELATIONM1] SC on IM.INCIDENT_ID = SC.SOURCE_ACTIVE
GROUP BY ASSIGNEE_NAME

但我有一个错误:子查询返回多于1的值,当子查询跟随时,这是不允许的。 我犯了什么错误? 感谢

1 个答案:

答案 0 :(得分:0)

您在ROUND中使用了两个子查询,其中一个可能返回多行。所以你应该重新检查你的子查询,它是加入条件来处理这个错误。