This isn't complete, but hopefully gets you on the right track. You should be able to write your queries as one query and then output it that way using aggregate totals.
<cfquery name="calls">
SELECT m.incidentcode ic, ic.event event, SUM(m.incdentcode) total
FROM master m
INNER JOIN incidentcode ic ON m.incidentcode = ic.id
where eventdate like '%#yydate#%'
group by m.incidentcode, event
order by ic
</cfquery>
<cfoutput query="calls">
<tr>
<td>#code.event#</td>
<td>#code.total#</td>
</tr>
</cfoutput>
The preferred way would be to create one query, but in keeping with your original syntax this should work as well. You may want to double check that sortedStruct is being sorted correctly. It might sort by key name first.
<cfset allCalls = {}>
<cfset totalCount = 0>
<cfoutput query=calls group="incidentcode">
<cfset groupCount = 0>
<cfoutput>
<cfset groupCount++>
</cfoutput>
<cfset totalCount+=groupCount>
<cfquery name="code" datasource="report">
select * from incidentcode
where id = <cfqueryparam cf_sql_type="cf_sql_varchar" value="#incidentcode#">
</cfquery>
<cfset allCalls[code.event] = groupcount>
</cfoutput>
<cfset sortedStruct = structSort(allCalls,'numeric','desc')><!--- returns an array ordered the way you want --->
<cfoutput>
<cfloop array="#sortedStruct#" index="event">
<tr>
<td>#event#</td>
<td>#allCalls[event]#</td>
<td>#numberFormat(allCalls[event] / totalCount * 100,'00.00')#</td>
</tr>
</cfloop>
</cfoutput>