Как построить запрос, где 2 поля взаимозависимы в MSSQL - PullRequest
0 голосов
/ 15 октября 2019

Я новичок в мире SQL-запросов, мне удобно писать базовые SQL-запросы, ограниченные операциями CRUD. Сейчас я работаю над проектом, в котором мне нужно написать сложные запросы, и я ищу помощь в том, как это сделать.

Сценарий У меня есть таблица x

Логика, которую я должен реализовать,

  1. Первая запись начинается с некоторого значения по умолчанию, скажем 0 в качестве StartCount.
  2. Мне нужно добавить числа Add1 + Add2 и вычесть минус
  3. Результатшаг 2 + StartCount становится моим EndCount
  4. В следующем месяце StartCount является EndCount предыдущей строки.
  5. Я должен повторить шаг 2,3,4 для всех строк в таблице.

Как это сделать с помощью SQL

1 Ответ

0 голосов
/ 15 октября 2019

Вы хотите, чтобы накопленная сумма, доступна с помощью оконных / аналитических функций. Это что-то вроде этого:

select x.*,
       (first_value(startcount) over (order by <ordercol>) +
        sum(add1 + add2 - minus) over (order by <ordercol>)
       ) as yourvalue
from x;

<ordercol> необходимо, потому что таблицы SQL представляют неупорядоченные наборы. Вам нужен столбец, который определяет порядок строк.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...