首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >显示CFOUTPUT组-分组编号-最优先

显示CFOUTPUT组-分组编号-最优先
EN

Stack Overflow用户
提问于 2014-01-13 23:36:00
回答 1查看 339关注 0票数 0

我正在试着做一份关于事件的报告。这段代码可以很好地显示它。但我想让报告显示最多的事件先下降。添加订单并不能做到这一点。我也是通过团体统计来计算事件的数量。这样就能得到这个百分比。但是显示是按照顺序显示事件代码,而不是按顺序显示事件的实际数量。我有点不知所措-似乎无法在谷歌或这里找到解决方案.使用CF9和Access..。

这样的表演..。

呼叫类型呼叫号码

美元损失-火2

医疗CoResponse 11

车辆意外6

垃圾或草火1

天然气泄漏-天然气5

警报-无火灾-目录报警1

警报-无火警-一氧化碳警报4

投诉调查2

我希望它先显示出来,然后像这样减少.

医疗CoResponse 11车辆意外6

天然气泄漏-天然气5

警报-无火警-一氧化碳警报4

美元损失-火2

投诉调查2

垃圾或草火1

警报-无火灾-目录报警1

代码语言:javascript
运行
复制
    <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>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-14 00:26:24

这还没有完成,但希望能让你走上正确的轨道。您应该能够将查询写成一个查询,然后使用聚合总计以这种方式输出它。

代码语言:javascript
运行
复制
<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是否被正确排序。它可以先按键名排序。

代码语言:javascript
运行
复制
<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>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21103494

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档