【发布时间】:2008-10-15 03:06:19
【问题描述】:
我的 SQL 有点生疏了——有没有一种 SQL 方法可以投影一个看起来像这样的输入表:
Name SlotValue Slots
---- --------- -----
ABC 3 1
ABC 4 2
ABC 6 5
进入一个看起来像这样的“投影”结果表:
Name SlotSum Slot
---- ------- ----
ABC 13 1
ABC 10 2
ABC 6 3
ABC 6 4
ABC 6 5
换句话说,结果集应该包含等于 MAX(Slots) 的行数,从 1 到 MAX(Slots) 的枚举 (Slot),并且每个“slots”的总和应该反映SlotValues 投影到“插槽”位置。对于病理情况:
Name SlotValue Slots
---- --------- -----
ABC 4 3
我们应该得到:
Name SlotSum Slot
---- ------- ----
ABC 4 1
ABC 4 2
ABC 4 3
求和逻辑非常简单——将每个 SlotValue 投影到 Slot 的数量:
SlotValue SlotValue SlotValue Slot Sum
--------- --------- --------- ---- ---
3 4 6 1 13 (3+4+6)
0 4 6 2 10 (0+4+6)
0 0 6 3 6 (0+0+6)
0 0 6 4 6 (0+0+6)
0 0 6 5 6 (0+0+6)
更新:最后我在存储过程中使用了 LOCALGHOST 方法的变体。我希望有一种方法可以在没有循环的情况下做到这一点。
【问题讨论】:
-
啊我还是不明白,你说的“项目”是什么意思
-
有一种方法可以不使用循环,但您选择忽略它。为什么?
-
因为它会融化必须处理它的维护人员的大脑。