Мой 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 (Слоты), нумерованное (Слот) от 1 до MAX (Слоты), а сумма для каждого из этих «слотов» должна отражать сумму SlotValues проецируется на позицию «Слоты». для патологического случая:
Name SlotValue Slots
---- --------- -----
ABC 4 3
мы должны получить:
Name SlotSum Slot
---- ------- ----
ABC 4 1
ABC 4 2
ABC 4 3
Логика суммирования довольно проста - проецируйте каждое значение SlotValue на количество слотов:
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 в хранимом процессе. Я надеялся, что может быть способ сделать это без цикла.