我正在试着做一份关于事件的报告。这段代码可以很好地显示它。但我想让报告显示最多的事件先下降。添加订单并不能做到这一点。我也是通过团体统计来计算事件的数量。这样就能得到这个百分比。但是显示是按照顺序显示事件代码,而不是按顺序显示事件的实际数量。我有点不知所措-似乎无法在谷歌或这里找到解决方案.使用CF9和Access..。
这样的表演..。
呼叫类型呼叫号码
美元损失-火2
医疗CoResponse 11
车辆意外6
垃圾或草火1
天然气泄漏-天然气5
警报-无火灾-目录报警1
警报-无火警-一氧化碳警报4
投诉调查2
我希望它先显示出来,然后像这样减少.
医疗CoResponse 11车辆意外6
天然气泄漏-天然气5
警报-无火警-一氧化碳警报4
美元损失-火2
投诉调查2
垃圾或草火1
警报-无火灾-目录报警1
<cfquery name="calls" datasource="report">
select * from master
where eventdate like '%#yydate#%'
order by incidentcode
</cfquery>
<cfoutput>
<b>#yydate# #calls.recordcount# Calls</b><br><br>
</cfoutput>
<table cellpadding=8 cellspacing=0 border=1>
<tr bgcolor=b3b3b3>
<td align=center>Call Type</td>
<td align=center>Call Numbers</td>
<td align=center>Percent</td>
</tr>
<cfoutput query=calls group="incidentcode">
<cfset groupCount = 0>
<cfoutput>
<cfset groupCount = groupCount + 1>
</cfoutput>
<cfquery name="code" datasource="report">
select * from incidentcode
where id = #incidentcode#
</cfquery>
<tr>
<td align=center>#code.event#</td>
<td align=center>#groupcount#</td>
<td align=center>
<cfset perc = (#groupcount# / #calls.recordcount#) * 100>
#numberformat(Perc, "_._")# %
</td>
</tr>
</cfoutput>发布于 2014-01-14 00:26:24
这还没有完成,但希望能让你走上正确的轨道。您应该能够将查询写成一个查询,然后使用聚合总计以这种方式输出它。
<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>最好的方法是创建一个查询,但为了与您的原始语法保持一致,这也应该有效。您可能需要再次检查sortedStruct是否被正确排序。它可以先按键名排序。
<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>https://stackoverflow.com/questions/21103494
复制相似问题