Запрос количества открытия и закрытия для другого продукта в postgresql - PullRequest
0 голосов
/ 19 сентября 2018

Я пытаюсь установить открывающий и закрывающий столбец в запросе PostgreSQL для отдельного открытия и закрытия для другого продукта, где я ввожу определенный диапазон дат, и в первом столбце открытия первой строки должно быть до начальной даты, а закрытие должно быть (открывающий столбец + столбец1+ столбец 2 + столбец 3) в каждой строке с указанием даты.

*** Вот мой пример базы данных

Date1        Product    column1  column2   column3
01/01/2017   A          25       15        20
02/01/2017   C          10       20        20
03/01/2017   B          10       10        20
04/01/2017   C          10       10        20
05/01/2017   A          10       20        10
05/01/2017   C          5        10        20
06/01/2017   B          10       10        20
06/01/2017   A          10       10        20
06/01/2017   C          10       10        20

Мой ожидаемый запрос в диапазоне дат PostgreSQL * от 04.01.2017 до01.06.2017:

Date1         Product      opening  column1  column2  column3 closing
04/01/2017    C            50       10       10       20      90
05/01/2017    A            60       10       20       10      100
              C            90       5        10       20      125
06/01/2017    A            100      10       10       20      140
              B            40       10       10       20      80
              C            125      10       10       20      165

1 Ответ

0 голосов
/ 19 сентября 2018

У меня есть предложение, но оно на сервере SQL, я не знаком с Postresql.Вы можете выполнить следующий запрос, передав диапазон дат в нем как @trans_date любым циклом или курсором, в зависимости от того, что подходит для u-

ВЫБОР ДАТЫ1, ПРОДУКТА, СУММЫ (открытие.опр_qty) AS открытия, СУММА (столбец 1) КАКcolumn1, SUM (column2) AS column2, SUM (column3) AS column3, SUM (close.cls_qty) AS закрывается FROM sample_table1 ВЛЕВО НА ВЫХОДЕ (SELECT (SUM (column1) + SUM (column2) + SUM (column3)) AS opn_qty,Product FROM sample_table1 WHERE Date1 <@trans_date GROUP BY Product, Date1) открытие ON открытие.Product = sample_table1.Product СЛЕДУЮЩЕЕ ВСТУПЛЕНИЕ (ВЫБРАТЬ (SUM (столбец1) + SUM (столбец2) + SUM (столбец3)) AS cls_qty, продукт FROM sample_table1WHERE Date1 <= @trans_date GROUP BY Product, Date1) закрытие ON Открытие.Product = sample_table1.catalog_item_id WHERE sample_table1.Date1 = @trans_date GROUP BY sample_table1.Product, Date1 ORDER BY Date1 DESC; </p>

Подобную логику вы можете использоватьприменять в PostgreSQL.

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