0

我们有一个数据库来存储我们客户的银行账户,如下所示:

|client|c01|c02|c03|c04|d01|d02|d03|d04|
|a     |3€ |5€ |4€ |0€ |-2€|-1€|-4€| 0€|

这是我们在第 3 个月时的数据库结构。在第 4 个月将是:

|client|c01|c02|c03|c04|c05|d01|d02|d03|d04|d05|
|a     |3€ |5€ |4€ |2€ |0€ |-2€|-1€|-4€|-2€| 0€|

注意c05和d05。

数据库自动更新会添加这些列。由于列中的这种变化,我无法轻松获得 c01、c02、c03、c04、d01、d02、d03、d04 的总和。我正在考虑创建一个函数来检查当前月份并进行循环,以便选择和汇总这些列而不会出现错误。

如果您有更好的想法,欢迎您。但主要问题是如何制作一个能够对可变数量的列求和的函数?

谢谢

4

1 回答 1

0

每个月添加一列让我很烦恼。我知道它可以作为选择性反规范化的有效 OLAP 策略,但在这里感觉很奇怪。通常对于这些类型的东西,整个宽度都是指定的,如果没有其他原因,只是为了避免ALTER TABLE声明。我对您在那里存储的内容知之甚少,无法给出建议,但我想我只是更喜欢完全标准化的结构。

做了类似的努力后,最好的选择是使用动态 sql。你可以把它放在你的存储过程中,像往常一样PREPAREing 和ing 。EXECUTE

于 2012-05-22T16:01:11.370 回答