这是我所在的地方:选择"客户端"。[名字],客户端。[姓氏], 客户余额来自客户端按客户订购,余额说明;
我想找到一种方法,在第一行中仅显示具有最大余额的客户,在第二行中显示具有最低余额的客户。我尝试过弄乱SQL命令,但我对它相当陌生,所以我不确定要输入的正确命令。到目前为止,我还没有遇到一种方法,也没有人能给我一个直接的答案。我已经上传了原始数据表,在这里,这就是我希望最终结果的样子。如果有人有任何建议或替代方案可以提供,那就太好了。谢谢你的时间。
这应该可以做你想要的:
(SELECT Client.[First Name], Client.[Last Name], Client.Balance
FROM Client
ORDER BY Client.Balance DESC, Client.[Last Name]
) UNION ALL
(SELECT Client.[First Name], Client.[Last Name], Client.Balance
FROM Client
ORDER BY Client.Balance ASC, Client.[Last Name]
)
考虑以下三种方法:
使用 WHERE 子查询(可与 DMax()
/DMin()
互换):
SELECT Client.[First Name], Client.[Last Name], Client.Balance
FROM Client
WHERE Client.Balance
IN (SELECT Max(Client.Balance) FROM Client)
OR Client.Balance
IN (SELECT Min(Client.Balance) FROM Client)
ORDER BY Client.Balance DESC
使用分组依据具有子查询(可与DMax()
/DMin()
互换):
SELECT Client.[First Name], Client.[Last Name], Client.Balance
FROM Client
GROUP BY Client.[First Name], Client.[Last Name], Client.Balance
HAVING Max(Client.Balance)
IN (SELECT Max(Client.Balance) FROM Client)
OR Min(Client.Balance)
IN (SELECT Min(Client.Balance) FROM Client)
带有联合和前 1 条子句:
(SELECT TOP 1 Client.[First Name], Client.[Last Name], Client.Balance
FROM Client
ORDER BY Client.Balance DESC)
UNION
(SELECT TOP 1 Client.[First Name], Client.[Last Name], Client.Balance
FROM Client
ORDER BY Client.Balance ASC)