Tsql T-SQL中相互服务的单位之间的互惠成本分配(典型的管理会计问题)
我正在拼命寻找一种有效的方法——如果有的话——来解决T-SQL中的某种递归任务(我可以通过迭代解决方案在excel和纸面上成功地对其建模——就像许多CMA在一个小例子中所做的那样,在迭代中相互服务的成对支持单元之间重新分配成本份额,并将平衡单元的未分配成本剩余最小化到合理的小数目,以停止迭代/递归) 现在,我正试图找到一个良好的可扩展解决方案(或至少是可行的方法),如何在T-SQL中实现管理会计领域的这一典型计算任务:当一些内部支持单位相互服务时(并产生定期成本,如工资等)为了最终生产,假设作为一家公司一起生产2或3个最终产品,因此,在成本计算工作结束时,需要将其各自的内部产生的支持间接费用份额合理地分配给这些产品的成本(根据一些实际基础分布,假设-每个产品花费的工时) 如果没有互惠服务,这将非常简单:一个支持单位在此期间向其他支持单位提供一些服务(并且需要将各自的成本与此服务数量流一起分配)第二个和第三个支持单位对其他支持单位做同样的事情,在他们的所有成本正确地计入生产成本并在他们共同服务的各自产品之间分摊之前(不是对所有支持单位都一样,我在这里使用的是基于活动的成本计算方法)…在实际案例中,可能不止2-3个单元可以在excel或纸上手动求解。因此,它确实需要一些动态参数算法(X数量的支持单元在服务期间为X-1对等方和Y产品提供服务,基于某些数量度量/%平方矩阵分配表)最终将其周期性成本分摊到每种产品的一个单位。最好是以某种方式在SQL中本地进行,而不使用外部.NET或其他程序集引用 一些数字示例:Tsql T-SQL中相互服务的单位之间的互惠成本分配(典型的管理会计问题),tsql,recursive-query,cost-management,Tsql,Recursive Query,Cost Management,我正在拼命寻找一种有效的方法——如果有的话——来解决T-SQL中的某种递归任务(我可以通过迭代解决方案在excel和纸面上成功地对其建模——就像许多CMA在一个小例子中所做的那样,在迭代中相互服务的成对支持单元之间重新分配成本份额,并将平衡单元的未分配成本剩余最小化到合理的小数目,以停止迭代/递归) 现在,我正试图找到一个良好的可扩展解决方案(或至少是可行的方法),如何在T-SQL中实现管理会计领域的这一典型计算任务:当一些内部支持单位相互服务时(并产生定期成本,如工资等)为了最终生产,假设作为
就我目前的水平而言,这有点令人兴奋,因此我非常感谢您的建议。示例数据(最好是DDL和DML语句,如果不是格式良好的表格
文本
),示例结果和您的尝试将帮助我们帮助您。您是否考虑过使用CLR函数()用C#这样的语言来实现复杂的需求会更容易。@Kevin:CLR函数和其他外部程序集-如果存在任何可能的SQL集成解决方案,这就是我试图避免的suffice@SergeyT-为什么不使用最好的工具来完成这项工作呢?您可以很容易地从T-SQL调用CLR函数,我发现代码很复杂更容易维护外部SQL。CLR函数也应该快几倍。@凯文谢谢,如果没有人提出一些自然的SQL解决方案(用CTE递归、表变量、Windows聚合等),我将考虑编码它。(尽管在我相信关系数学的日益强大以及MSSQL在其最新版本中的新特性后,我希望避免这种情况)示例数据(最好是DDL和DML语句,如果不是格式良好的表格文本
),示例结果和您的尝试将帮助我们。您是否考虑过使用CLR函数()用C#这样的语言来实现复杂的需求会更容易。@Kevin:CLR函数和其他外部程序集-如果存在任何可能的SQL集成解决方案,这就是我试图避免的suffice@SergeyT-为什么不使用最好的工具来完成这项工作呢?您可以很容易地从T-SQL调用CLR函数,我发现代码很复杂更易于在SQL外部维护。CLR函数也应多次使用