gpt4 book ai didi

mysql - CF8 - 循环求和

转载 作者:行者123 更新时间:2023-12-01 00:53:07 25 4
gpt4 key购买 nike

我有一个问题:

<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>

但这给了我两行“No Charge & (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”,因此两种值只有一行。 group by 语句使 mySQL 对每个不同的“desc”值执行求和和计数一次。

关于mysql - CF8 - 循环求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13414916/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com