Я работаю с существующей таблицей (не могу ее изменить) в SQL 2014
Упрощенная (пример) структура таблицы:
CREATE TABLE dbo.T1
(
sYear int NOT NULL,
m1 decimal(18, 2) NOT NULL,
m2 decimal(18, 2) NOT NULL,
m3 decimal(18, 2) NOT NULL,
m4 decimal(18, 2) NOT NULL,
m5 decimal(18, 2) NOT NULL,
m6 decimal(18, 2) NOT NULL,
m7 decimal(18, 2) NOT NULL,
m8 decimal(18, 2) NOT NULL,
m9 decimal(18, 2) NOT NULL,
m10 decimal(18, 2) NOT NULL,
m11 decimal(18, 2) NOT NULL,
m12 decimal(18, 2) NOT NULL
)
Таблица представляет собой «месячный бюджет» иличто от этого осталось, где от m1 до m12 представляют месяцы
Итак, пример данных для строки будет выглядеть примерно так:
Insert into dbo.T1
Values( 2017,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000)
Теперь моя задача такова, если пользователь хочет потратитьсумма в конкретном месяце, мне нужно удалить сумму расходов из этого конкретного месяца, оставшегося бюджета, при условии, что у него достаточно средств.Если нет, мне нужно удалить форму в последующие месяцы, пока не будет удалена полная стоимость расходов.
Я пытался использовать операторы Case и столбцы суммирования, но это стало смехотворно длинным .... слишком много случаев.Итак, в итоге я создал временную таблицу, в которой каждый столбец из исходной таблицы становится строкой, а затем суммировал значения строк до тех пор, пока я не достиг суммы расходов. (Использовал этот ответ в качестве примера того, как этого добиться: Выберите промежуточную сумму, пока не будет достигнута конкретная сумма )
Все еще не уверен, что это лучший способ для моего сценария, поэтому кто-нибудь знает способ суммирования по столбцам определенной строки илилюбой другой / лучший способ достижения этого?