如何使用表对列中的值求和?

时间:2014-08-13 17:59:53

标签: html coldfusion

我有一个表,我从查询中获取值, 我想得到每一行的总和。 我尝试使用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>

2 个答案:

答案 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;])