У меня есть таблица, которая содержит идентификаторы пользователей, идентификаторы периодов и кол-во:
User Period Qty
---- ------ ---
1 11201 3
1 11202 2
1 11203 5
2 11202 4
2 11203 1
Примечание. Пользователь 2 начал работу в периоде 11202, поэтому у него нет строки для периода 11201
.
Мне нужно получить пользователей только с последнего периода ...
SELECT User FROM table WHERE Period = 11203
... и затем используйте эти идентификаторы пользователя в одной таблице, чтобы получить период 11201 и 11202 кол-во для обоих пользователей.
Проблема: Мне нужно увидеть (null)
Кол-во для пользователя 2 в период 11201 . Вот так:
User Period Qty
---- ------ -----
1 11201 3
1 11202 2
2 11201 (null)
2 11202 4
Я не могу понять запрос / объединение для его достижения. Пока у меня есть это, но, как и ожидалось, оно дает мне только 3 строки (Пользователь 1, Периоды 11201/11202 и Пользователь 2, Период 11202):
SELECT a.User, a.Period, a.Qty
FROM (SELECT User FROM table WHERE Period = 11203) b
LEFT JOIN table a
ON b.User = a.User
WHERE a.Period BETWEEN 11201 AND 11202