gpt4 book ai didi

sql - SQL 存储过程中每个客户的求和和计算

转载 作者:行者123 更新时间:2023-12-02 09:01:26 25 4
gpt4 key购买 nike

在 SQL 数据库中,我获取了每个用户、每个客户的存储信息。

我需要编写一个存储过程来汇总客户用户的磁盘使用量 (MB)。当我获得单个客户的所有用户总和(totalDiscUsage)时,我需要执行计算(简单示例):

x = numberOfUsers * 200
y = (totalDiscUsage - x) / (10 * 5)

之后,我需要将 y 写入数据库,并为所有客户执行此操作。

我的问题是我怎样才能最好地做到这一点?

也许使用游标遍历每个客户,进行求和计算,并将结果写入数据库?这是一个好的解决方案吗?

提前致谢。非常感谢您的帮助!

最佳答案

请不要再使用光标! :-) SQL 是基于集合的 - 尽可能避免使用游标!

在这里您可以轻松实现。所以对于每个客户,你需要先确定用户数量,然后做一个简单的计算,更新客户。

我的建议是:

  • 创建一个小函数来计算给定客户的用户数量
  • 创建第二个小函数来执行相同的操作来计算总磁盘使用量
  • 将存储过程编写为执行计算的简单更新语句

    CREATE PROCEDURE dbo.UpdateCustomers()AS BEGIN    UPDATE Customers    SET y = (dbo.GetTotalDiskUsage(CustomerID) - dbo.GetTotalUsers(CustomerID) * 200) / 50END 

看起来太简单了,几乎:-)

马克

关于sql - SQL 存储过程中每个客户的求和和计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/926061/

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