Как отобразить 0, если FLI не соответствует запросу, но аренда есть - PullRequest
1 голос
/ 14 апреля 2020

скажем, у нас есть две таблицы.

Таблица 1 с арендой и Таблица 2 с суммами

Таблица аренды

+----------+------------+ | Lease ID | Status | +----------+------------+ | 001 | Active | +----------+------------+ | 002 | Active | +----------+------------+ | 003 | Not Active | +----------+------------+ | 004 | Active | +----------+------------+

Сумма таблицы

+---------+--------+---------+ | Period | Amount | LeaseID | +---------+--------+---------+ | 2019-01 | 100 | 001 | +---------+--------+---------+ | 2019-02 | 200 | 001 | +---------+--------+---------+ | 2019-01 | 300 | 002 | +---------+--------+---------+ | 2019-02 | 400 | 002 | +---------+--------+---------+

Период запроса = 2019-02. Он должен показывать только активные аренды в следующем формате:

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

+----------+--------+ | Lease ID | Amount | +----------+--------+ | 001 | 200 | +----------+--------+ | 002 | 400 | +----------+--------+ | 004 | 0 | +----------+--------+

Но, я получаю как:

+----------+--------+ | Lease ID | Amount | +----------+--------+ | 001 | 200 | +----------+--------+ | 002 | 400 | +----------+--------+

Как отобразить как 0 для идентификатора аренды с записью NULL Сумма за период запроса.

1 Ответ

1 голос
/ 14 апреля 2020

Вы можете использовать left join:

select l.leaseid, coalesce(a.amount, 0)
from lease l left join
     amount a
     on a.leaseid = l.leaseid and a.period = '2019-02'
where l.status = 'active';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...