|
Агрегатные функции для вычисления дохода за два периода
|
|||
---|---|---|---|
#18+
Добрый день! Я только начинаю изучение SQL и ещё не очень хорошо с ним разобрался. Хотелось бы узнать, есть ли способ одним запросом вывести две суммы за два разных периода? Мой запрос (будет ниже) выводит только пересекающиеся строки в таблицах, и я никак не могу понять, как мне вывеси всё. Пробовал и left join, и full outer join - ничего не помогает. Данные берутся из двух таблиц - Договор и продукт. В договоре есть: номер договора (PK), код продукта, дата договора, сумма В Продукте: код продукта (РК), наименование продукта, код типа продукта. SELECT RDP.PROD_ID AS "Код", RDP.PROD_NAME "Наименование продукта", SUM(C.TOTAL) "Показатель на 4 квартал 2020 года", SUM(C2.TOTAL) "Показатель на 1 квартал 2021 года" FROM PRODUCT p LEFT JOIN CONTRACT c ON P.PROD_ID = C.PROD_ID LEFT JOIN CONTRACT c2 ON P.PROD_ID = C2.PROD_ID WHERE C.CONT_DATE BETWEEN TO_DATE('2020-10-01', 'YYYY-MM-DD') AND TO_DATE('2020-12-31', 'YYYY-MM-DD') AND C2.CONT_DATE BETWEEN TO_DATE('2021-01-01', 'YYYY-MM-DD') AND TO_DATE('2021-03-31', 'YYYY-MM-DD') AND RDP2.PRTYPE_ID = 1 GROUP BY RDP.PROD_ID, RDP.PROD_NAME, RDC.TOTAL, RDC2.TOTAL; У меня этот запрос выводит вот это: Код |Наименование продукта |Показатель на 4 квартал 2020 года|Показатель на 1 квартал 2021 года| ----+-------------------------------------------------------+---------------------------------+---------------------------------+ 3|Фьючерсный контракт на обыкновенные акции ПАО «Газпром»| 120536.69| 69582.29| а должно быть примерно вот так плюс ещё один показатель на квартал. Код |Наименование продукта |Показатель на 4 квартал 2020 года| ----+--------------------------------------------------------+---------------------------------+ 1|Фьючерсный контракт на обыкновенные акции | 46530.56| 2|Фьючерсный контракт на обыкновенные акции | 55945.35| 3|Фьючерсный контракт на обыкновенные акции | 69582.29| 1|Фьючерсный контракт на обыкновенные акции | 62167| Буду благодарен, если вы сможете подсказать мне. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2021, 21:20 |
|
Агрегатные функции для вычисления дохода за два периода
|
|||
---|---|---|---|
#18+
1. Оформляй код. 2. Не вижу, что такое RDP, RDP2, RDC, RDC2 ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2021, 21:37 |
|
Агрегатные функции для вычисления дохода за два периода
|
|||
---|---|---|---|
#18+
Правильный Вася, Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
RDP, RDP2, RDC, RDC2 - это остатки от прошлых попыток. Не заметил ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2021, 22:35 |
|
Агрегатные функции для вычисления дохода за два периода
|
|||
---|---|---|---|
#18+
Sasha5213, А если так Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2021, 23:05 |
|
|
start [/forum/topic.php?fid=52&gotonew=1&tid=1880175]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
35ms |
get topic data: |
11ms |
get first new msg: |
7ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
2ms |
others: | 265ms |
total: | 398ms |
0 / 0 |