我与follwoing领域的数据库表:如何编写一个sql查询来获得这个输出?
id, loan_no, installment, status
其中有像
贷款信息,如果贷款有24个分期付款将有24行包含相同loan_no和安装状态这是支付或unpiad 。
所以我想获得所有分期付款status = paid的loan_no。
是否可以写一个查询来获得结果?
我与follwoing领域的数据库表:如何编写一个sql查询来获得这个输出?
id, loan_no, installment, status
其中有像
贷款信息,如果贷款有24个分期付款将有24行包含相同loan_no和安装状态这是支付或unpiad 。
所以我想获得所有分期付款status = paid的loan_no。
是否可以写一个查询来获得结果?
试试这个:
SELECT loan_no FROM your_table
WHERE loan_no NOT IN
SELECT DISTINCT loan_no FROM your_table
WHERE status = 'unpaid')
GROUP BY loan_no
感谢您的快速回答 –
SELECT DISTINCT loan_no FROM loan
WHERE loan_no NOT IN (SELECT DISTINCT loan_no FROM loan WHERE status = 'unpaid')
喜欢的东西
select distinct
i.loan_no,
i.status
from
info as i
left outer join info as i2
on i.loan_no = i2.loan_no and i2.status = 'unpaid'
where
i.status = 'paid'
and
i2.loan_no is null
;
感谢这也是工作,但需要更长的时间虽然 –
SELECT loan_no FROM table where status = "paid" group by loan_no;
查询返回其贷款的一些无偿的状态产生的结果:OP需要贷款的是具有所有状态=“支付”。 .. – Marco
SELECT A.loan_no FROM (
SELECT loan_no, COUNT(status) AS installments
WHERE status = 'paid'
GROUP BY loan_no, status
) AS A
WHERE A.installments = 24
因此,所有的贷款总会有24次付款?如果您想为所有已完成24次付款的所有贷款取消loan_no,那么类似上面的操作将会奏效。
OP说_ _“如果贷款有24分期付款”_,他提供了一个例子;) – Marco
是安装量不总是24. –
SELECT loan_no FROM YOUR_TABLE
WHERE id NOT IN (SELECT id FROM YOUR_TABLE WHERE status = 'unpaid') GROUP BY loan_no
这是错误的:你正在采取无偿分期付款(与子查询),并从表中删除...所以你可以获得分期付款,但不支付所有分期付款的贷款;) – Marco
是有可能 – PeeHaa