dur_idle shows idle time since midnight no matter which reason code.
filtering reason_num for 1-99 should work, however if the last agent leaves the state (reason code) you are filtering for, the sum of zero fields is nothing. An aggregate sum() field would show ??? as there is nothing to sum up.
You can use following trick to at least show a 0. Lets give your aggregate idle-field the alias SumIdleState. Create a new calc field with the formular MAX( SumIdleState , 0). This calc field will show the sum of all fields or 0 if there are none.