0

我正在尝试从名为“价格”的数据库列中计算总体价格。这个想法是用户下订单,订单记录在orders表格中。然后管理员出现并可以查看所有订单的总利润。

我不知道该怎么做。我我需要把它放入 afor ... loop并将结果相互叠加。但我不知道从哪里开始。(我已经使用 ColdFusion 大概 2 天了,所以任何和所有的帮助都表示感谢。)。

编辑- 更多信息,我正在使用带有 sqlsrv 和 ColdFusion 9 的 SQL Server 2008。在仔细检查数据库后,它的价格不是“orderValue”。

编辑- 更多信息,感谢所有帮助,以及我在另一条评论中提到的总增值税等,我想自己做这件事,这是一个起点,足以勾选最后一个要求框uni 的这个购物网站,但是我想在我明天(截止日期)提交后继续改进它,我更多的是说明我的进一步计划而不是寻求帮助,再次感谢你们的所有帮助,这里真的是一个很棒的社区。

4

4 回答 4

4

您需要在 SQL 中执行此操作,而不是 ColdFusion:

<cfquery name="totalSalesQuery">
    SELECT SUM(price) AS totalSales
    FROM orders
</cfquery>

<cfoutput>#totalSalesQuery.totalSales#</cfoutput>

还...

您将无法从订单表中的价格列计算利润。您需要有一种方法可以减去每个订单的成本以确定利润。所以我假设你实际上是在寻找总销售额。

如果要将结果格式化为美元,可以将输出包装在格式化函数中:

<cfoutput>#dollarFormat(totalSalesQuery.totalSales)#</cfoutput>
于 2013-05-15T21:59:36.983 回答
0

最好只在 SQL 中执行此操作,具体取决于您的其他代码。例如,如果您使用的是 T-SQL (MS SQL),则使用以下语句:

<cfquery name="qProfit">
    SELECT SUM(price) AS profit
    FROM orders
</cfquery>

<cfoutput>
Profit: #qProfit.profit#
</cfoutput>
于 2013-05-15T22:00:41.893 回答
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>
于 2013-05-15T22:03:18.767 回答
0

我看到您已经选择了一个答案,如果这是您需要得到总和的唯一列,那么我也会这样做。但是,如果您需要输出一堆其他东西,并且还想在没有太多查询运行的情况下对几列求和,那么这是一种不太为人所知的非常漂亮的方法:

<cfset totalInvoiced=arraySum(selectQueryName["columnname"]) />

或幻想输出(例如,确保它返回带有 2 位小数的数字格式):

<cfset totalInvoiced=numberFormat(arraySum(selectQueryName["columnname"]),".00") />
于 2013-05-16T13:08:30.953 回答