SQL вставляет новую запись после каждого уникального кода со значением следующего месяца - PullRequest
1 голос
/ 03 июля 2019

У меня есть таблица, в которую я хочу вставить новые записи. Для каждого уникального кода я хочу добавить новую запись на следующий месяц с суммой 0.

Пример таблицы ввода:

Unique Code |  Date    | Amount 
    1       | 1/4/2015 | 100
    1       | 1/5/2015 | 20
    1       | 1/6/2015 | 30
    1       | 1/7/2015 | 80
    2       | 1/3/2018 | 55
    2       | 1/4/2018 | 60
    2       | 1/5/2018 | 36
    2       | 1/6/2018 | 90

Логика такова:

If the date < March - 2019 
Then ( Add a new row with Date + 1 month and an amount of 0) 
Else ( do nothing) 

Таким образом, таблица вывода должна быть:

Unique Code |  Date    | Amount 
    1       | 1/4/2015 | 100
    1       | 1/5/2015 | 20
    1       | 1/6/2015 | 30
    1       | 1/7/2015 | 80
    1       | 1/8/2015 | 0
    2       | 1/3/2018 | 55
    2       | 1/4/2018 | 60
    2       | 1/5/2018 | 36
    2       | 1/6/2018 | 90
    2       | 1/7/2018 | 0

1 Ответ

0 голосов
/ 03 июля 2019

Кажется, вы хотите union all:

select uniquecode, date, amount
from t
union all
select uniquecode, dateadd(month, 1, max(date))  0
from t
group by uniquecode
having max(date) < '2019-03-01'
order by uniquecode, date;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...