Mysql 谷歌大查询
假设有一个包含两个表的数据库,即Loans和Billpayment 对于贷款表,我有以下列:Mysql 谷歌大查询,mysql,google-bigquery,Mysql,Google Bigquery,假设有一个包含两个表的数据库,即Loans和Billpayment 对于贷款表,我有以下列: loanId, clientId(primary key), DisbursementDate, applicationDate, approvalDate, loanNumber, loanAmount, interestRate Billpayment表列包括: billId(primary), customerId(foreign), billAmount, payment_status[suc
loanId,
clientId(primary key),
DisbursementDate,
applicationDate,
approvalDate,
loanNumber,
loanAmount,
interestRate
Billpayment表列包括:
billId(primary),
customerId(foreign),
billAmount,
payment_status[success/fail],
billDate
如何获取2018年3月已付款的客户,并显示在2018年剩余几个月内至少支付过一次账单的客户的数量,除此之外,还显示账单付款客户是否在2018年内有贷款?好的,让我们完成这项工作。我没有测试过这些,也没有对其进行适当的优化,但希望它能有所帮助 若要在2018年3月列出付款,假设我们不关心是否成功,请在以下位置执行以下操作:
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条款中添加and:
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
Loan table的ClientId是billpayment table的CustomerId?这是我的假设,看不出还有什么其他的联系方式。是的..它是@SafiUllah