Google большой запрос - PullRequest
       4

Google большой запрос

0 голосов
/ 27 февраля 2019

Предположим, что есть база данных с двумя таблицами, а именно, Кредиты и Вексель.

Для таблицы Кредиты у меня есть следующие столбцы:

loanId,
clientId(primary key),
DisbursementDate,
applicationDate,
approvalDate,
loanNumber,
loanAmount,
interestRate

Столбцы таблицы векселей включают:

billId(primary),
customerId(foreign),
billAmount,
payment_status[success/fail],
billDate

Как получить клиентов, которые оплатили счет в марте 2018 года, и показать количество клиентов, которые произвели хотя бы один платеж по счету в оставшиеся месяцы 2018 года, и, кроме того, показать, является ли илиу клиентов с оплатой счета нет кредита в 2018 году или нет?

1 Ответ

0 голосов
/ 27 февраля 2019

ОК, давайте проработаем это.Я не проверял ничего из этого, и при этом он не был должным образом оптимизирован, но, надеюсь, это поможет.

Чтобы составить список платежей в марте 2018 года, предполагая, что нам все равно, успешны они или нет, сделайте где:

select * from billpayment
where month(billDate) = 3 and year(billDate) = 2018

Чтобы включить соответствующую информацию о клиенте в вышеуказанное, выполните объединение:

select * from billpayment
join loans on customerId = clientId
where month(billDate) = 3 and year(billDate) = 2018

Чтобы отобразить только клиентов, которые также произвели платеж в другом месяце 2018 года, выполните другое объединениек производной таблице:

select * from billpayment b
join loans l on b.customerId = l.clientId
join (select distinct b1.clientId as clientid1 from billpayment b1
      where year(b1.billdate) = 2018 and month(b1.billdate) <> 3) c
        on b.customerId = c.clientId1 
where month(b.billDate) = 3 and year(b.billDate) = 2018

Чтобы добавить проверку, начали ли они свой кредит в 2018 году (с учетом даты подачи заявки), добавьте и к предложению where:

select * from billpayment b
join loans l on b.customerId = l.clientId
join (select distinct b1.clientId as clientid1 from billpayment b1
      where year(b1.billdate) = 2018 and month(b1.billdate) <> 3) c
        on b.customerId = c.clientId1 
where month(b.billDate) = 3 and year(b.billDate) = 2018
and year(l.applicationDate) = 2018
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...