SQL список всех квартир с фактическим владельцем - PullRequest
2 голосов
/ 27 января 2020

Я пытаюсь использовать запрос, чтобы перечислить все квартиры с фактическим владельцем.

Моя таблица квартир выглядит следующим образом:

building | apartmentNbr | owner |      start |        end
      b1 |           a1 |    o1 | 2009-08-13 | 2010-08-13
      b1 |           a1 |    o2 | 2010-08-14 | 2019-01-01
      b1 |           a2 |    o3 | 2009-01-03 | 2010-01-03
      b1 |           a2 |    o4 | 2010-01-04 | 2010-08-13
      b1 |           a2 |    o5 | 2010-08-14 | 9999-12-31
      b1 |           a3 |    o6 | 2010-08-14 | 2019-12-31
      b1 |           a3 |    o7 | 2020-02-14 | 9999-12-31
      b2 |           b1 |    o8 | 2012-08-14 | 9999-12-31
...

С моим запросом

SELECT *
FROM Appartments
WHERE CURDATE() BETWEEN startDate AND endDate

У меня есть только занятые квартиры, но я хотел бы также бесплатно:

building | apartmentNbr | owner
      b1 |           a1 |  null
      b1 |           a2 |    o5
      b1 |           a3 |  null
      b2 |           b1 |    o8

Как я могу это исправить?

1 Ответ

5 голосов
/ 27 января 2020

Do GROUP BY. Используйте выражение case, чтобы получить текущего владельца (или ноль).

SELECT building, apartmentNbr,
       max(case when CURDATE() BETWEEN startDate AND endDate then owner end)
FROM Appartments
GROUP BY building, apartmentNbr
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...