генерировать те же данные, где в таблице - PullRequest
0 голосов
/ 30 июня 2018

У меня есть тестовая таблица

test_table

add - количество добавленных значений для дня и удаленное значение для дня, diff - это разные add и del fileds плюс предыдущий diff

как я могу написать запрос и вернуть! см. изображение result image

где интервал даты не один день, там для генерации одинаковых столбцов, пример 03.05.2018, строка генерируется строка, и это ADD = 0, DEL = 0, И DIFF = предыдущий 4, после 11.05.2018 для генерации строк к текущей дате

1 Ответ

0 голосов
/ 30 июня 2018

Создайте все строки, используя generate_series(), затем left join:

select 1 as com_id, gs.dte,
       coalesce(add, 0) as add, coalesce(del, 0) as del,
       (sum(add) over (order by gs.dte) -
        sum(del) over (order by gs.dte)
       ) as diff
from generate_series('2018-05-01'::date, current_date, interval '1 day') gs(dte) left join
     test t
     on t.date = gs.dte;

Здесь - тестер.

...