我需要显示三个表中的数据,只显示有限的链接数据。
表格示例 -
客户:客户名称,客户ID
帐户:AccountName,AccountID,CustomerID
交易:TransactionAmount,TransactionDate,TransactionID,AccountID,CustomerID
客户可能没有任何关联的帐户,但可能有多个。 帐户可能没有任何链接的交易,但可能有多个。
显示数据有两种必要的方法:
TransactionDate排名前200位交易,但每个帐户只有一个(最近的TransactionDate)。显示CustomerName,AccountName,TransactionAmount。
搜索结果Customername,AccountName或TransactionID 一个。如果按CustomerName搜索,则仅显示具有最高AccountID的CustomerName,AccountName,以及仅使用最新TransactionDate的相关TransactionAmount。客户可能没有任何账户或交易 湾如果通过AccountName搜索,则仅使用最新的TransactionDate显示CustomerName,AccountName和相关的TransactionAmount。客户可能没有任何交易 C。如果通过TransactionID搜索,则显示CustomerName,AccountName和TransactionAmount。 (这个很简单)
我无法确定如何根据需要执行限制数据所需的分组和其他聚合函数。 任何帮助都将非常感激。
答案 0 :(得分:0)
1)将交易限制为最新的交易,您可以执行类似
的操作with LatestTransactionByAccount as (
select * from Transactions t
where not exists (
select 1 from Transactions t2 where t2.AccountID = t.AccountID
and t2.TransactionDate < t.TransactionDate)
)
select ...
from LatestTransactionByAccount
join ...
2)类似地工作