我是SQL的新手,目前正在学习,这可能是一个相当基本的问题:
我有4张桌子
1)客户(customerName,street,customerCity)
2)存款(customerName,branchName,accountNumber,balance)
3)贷款(customerName,branchName,loanNumber,amount)
4)分支(branchName,branchCity,assets)
每个表都插入了一些数据。
我被要求找到存款金额最高的customerName。 (所以我猜我会只使用存款表)?
然而,这是捕获,我正在学习的表格要求我必须使用ALL或ANY,我不能简单地使用MAX函数来实现这一点。
我将如何实现这一目标?我已经尝试过查询后的查询,但根本找不到让它工作的方法(请记住,我只学习了一周)。
我一直在尝试的事情是:
SELECT customerName
FROM Deposit
WHERE balance> ALL;
查询应返回1个值,即具有最高余额值的customerName。
非常感谢你的帮助:)!
答案 0 :(得分:1)
您正在寻找余额大于或等于表格中所有余额的客户
因此您只需使用>=
代替>
SELECT customerName
FROM Deposit
WHERE balance >= ALL (SELECT balance
FROM Deposit);
或者,您可以使用相关的子查询,并查找余额大于所有其他余额值的客户。
SELECT customerName
FROM Deposit d1
WHERE balance > ALL (SELECT balance
FROM Deposit d2
WHERE d2.balance <> d1.balance);
如果发生关联,两个查询都将返回金额最高的所有客户。