背景
我经常需要计算数据库中几个不同表的运行总计。
关于运行总计算的几个小时的研究(对我来说最有用的解释可能是this在Stackoverflow上发布,它给出了每种方法的简要总结)我选择了非常好的光标方法。
问题:
我必须为每个我想要计算运行总数的不同表重写运行总光标,我想知道是否有任何变通方法?是否可以创建一个将表/列名称作为输入参数并返回具有运行总计的表的函数?
我的尝试:
我的第一步是创建一个使用多个变量的动态查询(我确实有检查以确保表和列存在):
SET @SQLStatement = '
DECLARE rt_cursor CURSOR
FOR
SELECT ' + @DateColumn + ', SUM(' + @ValueColumn + ')
FROM ' + @TableName + '
GROUP BY ' + @DateColumn + '
ORDER BY ' + @DateColumn
EXEC sp_executesql @sqlstatement
OPEN rt_cursor
效果很好......
然后我尝试将其合并到一个函数中(由于我现在非常清楚的原因)这没有用(函数执行不起作用)
......所以我决定寻求帮助。
PS:我是新手,新手,你喜欢什么样的电话,虽然我很欣赏批评,但我只想让这个工作做得最好我能够。我只做兼职兼职,没有时间学习适当的SQL的所有细节和注意事项,所以解决方案而不是理论课也会受到赞赏 - 即使它只是"这不会工作"。
谢谢大家!
答案 0 :(得分:0)
听起来你只需要创建一个存储过程,这将允许你做你想做的一切。该过程将您的变量作为参数(@DateColumn,@ TableName等)。
您有几个选择可以返回结果: