Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 循环求和_Mysql_Loops_Coldfusion_Coldfusion 8_Addition - Fatal编程技术网

Mysql 循环求和

Mysql 循环求和,mysql,loops,coldfusion,coldfusion-8,addition,Mysql,Loops,Coldfusion,Coldfusion 8,Addition,我有一个问题: <cfquery name="getDesc" datasource="#ds#"> SELECT desc, SUM(charge) as cost, COUNT(*) as cnt FROM product WHERE Length(desc) > 0 </cfquery> 然后填充一个表: <table> <tbody> <tr>

我有一个问题:

<cfquery name="getDesc" datasource="#ds#">
  SELECT
    desc,
    SUM(charge) as cost,
    COUNT(*) as cnt
  FROM
    product
  WHERE Length(desc) > 0
</cfquery>
然后填充一个表:

<table>
  <tbody>
      <tr>
        <th>Description</th>
        <th>Amount of Charges</th>
        <th>Cost (&pound;)</th>
      </tr>

      <cfoutput query="getDesc">
      <tr>
        <td>
          #HTMLEditFormat(getDesc.desc)# <br />
        </td>     
        <td>
          #HTMLEditFormat(getDesc.cnt)# <br />
        </td>
        <td>
            #HTMLEditFormat(getDesc.cost)# <br />
        </td>
      </tr>
    </cfoutput>
  </tbody>
</table>
我的问题是,我想合并表中两行,它们具有相同的值,并且它们的计数相加在一起

到目前为止,我已经:

<table>
  <tbody>
      <tr>
        <th>Description</th>
        <th>Amount of Charges</th>
        <th>Cost (&pound;)</th>
      </tr>

      <cfoutput query="getDesc">
      <tr>
        <cfif getDesc.desc EQ 'No Charge' OR getDesc.desc EQ 'No Charge (2)'>
          <td>
            No Charge & (2)
          </td>
          <td>
            <cfset cntSum = arraySum(getDesc['cnt'])>
            #cntSum#
          </td>
        <cfelse>
        <td>
          #HTMLEditFormat(getDesc.desc)# <br />
        </td>     
        <td>
          #HTMLEditFormat(getDesc.cnt)# <br />
        </td>
        </cfif>
        <td>
            #HTMLEditFormat(getDesc.cost)# <br />
        </td>
      </tr>
    </cfoutput>
  </tbody>
</table>
但这给了我两行“免费&2”,计数是表中所有其他行的总和,而不仅仅是我想要的两行


希望这是有意义的。

我会改变您的查询,以获得您需要的数据。以下是我刚刚准备好的,我认为可以满足您的要求:

  SELECT
    CASE `desc` WHEN 'No Charge (2)' THEN 'No Charge' ELSE `desc` END,
    SUM(charge) as cost,
    COUNT(*) as cnt
  FROM
    product
  WHERE Length(`desc`) > 0
  group by CASE `desc` WHEN 'No Charge (2)' THEN 'No Charge' ELSE `desc` END

case语句将“No Charge 2”更改为“No Charge”,因此这两种值只有一行。GROUPBY语句使mySQL对“desc”的每个不同值执行一次求和和计数

我会更改您的查询,以获取您需要的数据。以下是我刚刚准备好的,我认为可以满足您的要求:

  SELECT
    CASE `desc` WHEN 'No Charge (2)' THEN 'No Charge' ELSE `desc` END,
    SUM(charge) as cost,
    COUNT(*) as cnt
  FROM
    product
  WHERE Length(`desc`) > 0
  group by CASE `desc` WHEN 'No Charge (2)' THEN 'No Charge' ELSE `desc` END

case语句将“No Charge 2”更改为“No Charge”,因此这两种值只有一行。GROUPBY语句使mySQL对“desc”的每个不同值执行一次求和和计数

不错,巴尼。你的个人资料有点稀疏。我想看看你们的网站。想想看,我只是移动了我的个人网站,我的个人网站根本不存在。六羟甲基三聚氰胺六甲醚。。。我想我知道今天剩下的时间我要做什么了!不错,巴尼。你的个人资料有点稀疏。我想看看你们的网站。想想看,我只是移动了我的个人网站,我的个人网站根本不存在。六羟甲基三聚氰胺六甲醚。。。我想我知道今天剩下的时间我要做什么了!