我正在尝试从名为“price”的数据库列计算总体价格。想法是用户下订单,该订单记录在orders
表中。然后管理员出现,可以查看所有订单的总利润。
我不知道该怎么做。我认为我需要将它放入for ... loop
并将结果添加到彼此之上。但我不知道从哪里开始。 (我现在已经使用ColdFusion 2天了,所以感谢任何和所有的帮助。)。
编辑 - 更多信息, 我正在使用带有sqlsrv和ColdFusion 9的SQL Server 2008.在仔细检查数据库后,它的价格是“orderValue”。
编辑 - 更多详情,感谢您提供的所有帮助,以及我在另一条评论中提及的总桶数等,我想自己做,这是一个起点并且它足以勾选这个购物网站的最后一个要求盒为uni,但是我想在明天交付它(截止日期)之后进展它并且我更多地说明我的进一步计划而不是寻求帮助,再次感谢你们所有的帮助真的是一个伟大的社区。 p>
答案 0 :(得分:4)
您希望在SQL中执行此操作,而不是ColdFusion:
<cfquery name="totalSalesQuery">
SELECT SUM(price) AS totalSales
FROM orders
</cfquery>
<cfoutput>#totalSalesQuery.totalSales#</cfoutput>
同时... 强>
您将无法从订单表中的价格列计算利润。您需要有一种方法来减去每个订单的成本以确定利润。所以我假设你实际上在寻找总销售额。
如果要将结果格式化为美元,可以将输出包装在格式化函数中:
<cfoutput>#dollarFormat(totalSalesQuery.totalSales)#</cfoutput>
答案 1 :(得分:0)
最好在SQL中执行此操作,具体取决于您的其他代码。例如,如果您正在使用T-SQL(MS SQL),那么请使用以下语句:
<cfquery name="qProfit">
SELECT SUM(price) AS profit
FROM orders
</cfquery>
<cfoutput>
Profit: #qProfit.profit#
</cfoutput>
答案 2 :(得分:0)
正如其他用户指出的那样,运行SQL查询是最好的,但是如果你不能在这里创建一个新的SQL语句,你可以循环使用现有的查询并将值添加到变量中。
--Sample query
<cfquery name="getOrders">
SELECT orderid, price
FROM orders
</cfquery>
<cfset totalprice = 0>
<cfloop query="getOrders">
<cfset totalprice+=getOrders.price>
</cfloop>
答案 3 :(得分:0)
我看到你已经选择了一个答案,如果这是你需要得到的总和的唯一一列,那么我也是这样做的。但是,如果你需要输出一堆其他的东西,并且想要在没有太多查询运行的情况下总结几列,这是一个非常好的方法来做到这一点并不为人所知:
<cfset totalInvoiced=arraySum(selectQueryName["columnname"]) />
或者对输出进行编程(例如,确保它返回带有2位小数的数字格式):
<cfset totalInvoiced=numberFormat(arraySum(selectQueryName["columnname"]),".00") />