2017-05-17 4 views
0

Ich möchte für jeden ASSIGNEE_NAMEProzent der Gesamtzeit

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 

Aber ich habe einen Fehler ein Prozent der Gesamtzeit berechnen: Unterabfrage liefert mehr als 1 Wert dies ist nicht zulässig, wenn die Unterabfrage folgt. Wo habe ich einen Fehler gemacht? Danke

Antwort

0

Sie haben zwei Unterabfragen in ROUND verwendet, höchstwahrscheinlich eine von ihnen gibt mehr als eine Zeile zurück. Sie sollten daher Ihre Unterabfrage und die Beitrittsbedingung erneut überprüfen, um diesen Fehler zu beheben.