如何从数据库列计算价格

时间:2013-05-15 21:52:41

标签: sql-server-2008 coldfusion coldfusion-9

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

我不知道该怎么做。我认为我需要将它放入for ... loop并将结果添加到彼此之上。但我不知道从哪里开始。 (我现在已经使用ColdFusion 2天了,所以感谢任何和所有的帮助。)。

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

编辑 - 更多详情,感谢您提供的所有帮助,以及我在另一条评论中提及的总桶数等,我想自己做,这是一个起点并且它足以勾选这个购物网站的最后一个要求盒为uni,但是我想在明天交付它(截止日期)之后进展它并且我更多地说明我的进一步计划而不是寻求帮助,再次感谢你们所有的帮助真的是一个伟大的社区。

4 个答案:

答案 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") />