繁体   English   中英

T-SQL 表获取正确查询

[英]T-SQL Table Getting Right Query

我有一张这样的桌子。 (还有更多记录)

在此处输入图像描述

这是问题。 如何让前 20 位客户在同一银行分行(BranchID)、多个相同货币账户(不仅仅是一个)中拥有 9000 到 24000 之间的钱(金额)。

也许是这样的?

select distinct top 20 
  yt.CustomerId
from [$your_table] yt
group by yt.CustomerId, yt.BranchId, yt.Currency
having count(*)>1
  and sum(yt.amount) between 9000 and 24000

count(*)>1不止一次地捕捉到那些使用相同分行和货币的客户。 然后,对于金额的总和( sum(yt.amount) ),它只得到 9000 到 24000 之间的那些。

最后,因为同一个客户可能有不止一条记录(同一个分行和两种不同的货币多次 - 甚至是几个分行),我们得到了distinct top 20 CustomerId

在 SQL 服务器中,您可以为此使用TOP

如:

SELECT TOP 20 
FROM TABLE
WHERE filter condition...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM