Как создать отчет о сравнении цен в mysql - PullRequest
0 голосов
/ 12 июля 2020

У меня есть датированная таблица цен на нефть марки Brent, в которой хранится прайс-лист с 1 по 31 января. Я хочу сравнить цену на 1 января 2020 года (или другую дату) с первым января 2021 года (или другой датой). В отчете будет указана дата, год, например, 2020 и 2021, с ценами на 2020 год, отображаемыми до 2020 года и цены на 2021 год, отображаемые до 2021 года. Я написал запрос ниже, но это не так.

SELECT b.date
     , b1.price as year1
     , b2.price as year2 
  from brentprices as b 
  join brentprices as b1 
    on b1.year = '2020'
  join brentprices as b2 
    on b2.year = '2021'

Ниже приведен образец таблицы и данные

enter image description here

Below is the expected result

введите описание изображения здесь

1 Ответ

1 голос
/ 12 июля 2020

tabular text и images разные ... (но это уже другое обсуждение):

create table brentprices (date date primary key, price decimal(8.2));

insert into brentprices values ('2020-01-01', 100);
insert into brentprices values ('2020-01-02', 101);
insert into brentprices values ('2020-01-03', 102);
insert into brentprices values ('2021-01-01',  99);
insert into brentprices values ('2021-01-02', 103);
insert into brentprices values ('2021-01-03', 102);

select * 
from brentprices b1 
left join brentprices b2 on b2.date=date_add(b1.date,INTERVAL 1 YEAR) 
where year(b1.date)=2020;

вывод:

+------------+-------+------------+-------+
| date       | price | date       | price |
+------------+-------+------------+-------+
| 2020-01-01 |   100 | 2021-01-01 |    99 |
| 2020-01-02 |   101 | 2021-01-02 |   103 |
| 2020-01-03 |   102 | 2021-01-03 |   102 |
+------------+-------+------------+-------+
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...