• Remove the s.StateDuration from the GROUP BY. You're SUMMING that... Your query should look like this:
    SELECT s.AgentName
      , s.ReasonCode
      , Sum(s.StateDuration) AS 'StateDuration'
    FROM (
      SELECT [Agent Name] AS 'AgentName'
       , [Reason Code] AS 'ReasonCode'
       , Cast(Datepart(Second, [Duration]) AS INT) + Cast(60 * Datepart(Minute, [Duration]) AS INT) + Cast(3600 * Datepart(Hour, [Duration]) AS INT) AS 'StateDuration'
      FROM State_Details
      GROUP BY [Agent Name]
       , [Reason Code]
      ) s
    GROUP BY s.AgentName
      , s.ReasonCode