Показать данные с 2 разных дат - PullRequest
0 голосов
/ 16 октября 2018

Я действительно новичок в SQL-запросе, и у меня есть 1 вопрос.Ниже приведены подробности:

У меня есть ОДНА таблица:

user_table

user_id username    balance   date_updated
------------------------------------------
1       adam        100       09/10/2017
2       david       100       09/10/2017
1       adam        110       10/10/2017
2       david       120       10/10/2017
1       adam        100       11/10/2017
2       david       100       11/10/2017
1       adam        110       12/10/2017
2       david       120       12/10/2017

Я хочу получить баланс на дату 10.10.2017 и 12 /10/2017

ожидаемый результат:

username    first_date   second_date
------------------------------------
adam        100          110
david       100          120

Заранее спасибо !!

Ответы [ 2 ]

0 голосов
/ 16 октября 2018

Использовать условное агрегирование

SELECT 
  username, 
  MAX(CASE WHEN date_updated = '2017-10-09' THEN balance END) AS first_date, 
  MAX(CASE WHEN date_updated = '2017-10-12' THEN balance END) AS second_date
FROM user_table 
GROUP BY username
0 голосов
/ 16 октября 2018

вариант использования, когда с агрегатной функцией

select username,
sum(case when date_updated='9/10/2017' then balance else 0 end) as first_date,
sum(case when date_updated='12/10/2017' then balance else 0 end) as second_date
from user_table t
group by username

Я предпочитаю здесь sum() вместо max(), потому что если больше строк, доступных пользователю на конкретную дату, будет охватывать

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