如何创建仅显示 Microsoft Access 中具有最大值和最小值的行的查询?2010/2013.



这是我所在的地方:选择"客户端"。[名字],客户端。[姓氏], 客户余额来自客户端按客户订购,余额说明;

我想找到一种方法,在第一行中仅显示具有最大余额的客户,在第二行中显示具有最低余额的客户。我尝试过弄乱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)

最新更新