我有一个表,我从查询中获取值, 我想得到每一行的总和。 我尝试使用if语句
<cfif ECA GTE 0><td align="center">#ECA#</td> <cfset totaleca+=ECA></CFIF>
但我得不到正确的金额。 我如何获得所有列的总和?
我做了http://jsfiddle.net/w2k3y3kz/2/
代码:
<table id="table-example-1"><caption>testing</caption>
<thead><tr>
<th colspan="1"></th>
<th colspan="3">ECA</th>
</tr><tr>
<th></th>
<th>open</th>
</tr></thead>
<cfoutput query="getSubtotal">
<cfset totaleca = 0>
<cfset totalsum = 0>
</tr></thead><tbody><tr><td style="width:70px"; align="center">#numberformat(mid(getSubtotal.oaoperiod,5,2))#/#left(getSubtotal.oaoperiod,4)# </td>
<td align="center">#ECA#</td>
<td align="center">#ECAClose#</td>
<td align="center">#ECAcos#</td>
<td align="center">#NSA#</td>
<td align="center">#NSAClose#</td>
</tr>
</tbody>
</cfoutput>
<cfoutput>
<tfoot>
<tr>
<td></td>
</tr>
</cfoutput>
</tfoot>
</table>
答案 0 :(得分:4)
您可以在查询列上使用数组函数。对此的等效命令:
<cfif ECA GTE 0><td align="center">#ECA#</td> <cfset totaleca+=ECA></CFIF>
是
<cfset totaleca = ArraySum(getSubtotal['eca'])>
如果要添加多个列的总计,请执行以下操作:
<cfstet totalSum = ArraySum(getSubtotal['eca'])
+ ArraySum(getSubtotal['ecaclose'])
etc ... >
答案 1 :(得分:3)
我认为您可以参考Ben Nadel的this Blog post在查询对象上应用不同的数组函数。
示例:如果查询对象包含两列Name和Mark,我们必须计算所有标记的总和,然后我们可以使用:Arraysum(q [&#39; mark&#39;])
同样,我们也可以使用其他数组函数,如:ArrayMax(q [&#39; Mark&#39;]),ArrayMin(q [&#39; Mark&#39;]),ArrayAvg(q [&# 39;标记&#39;])