一对多 table 加入摘要 table

One to many table joined to summary table

我需要加入以下两个表:

Transactions (multiple rows per person)
LedgerSummary (Summary table) - one row per person

如何连接这两个表,但不获取每行交易的 LedgerSummary 数据?我只希望 LedgerSummary 数据附加到每人交易的第一行 (ID)。

这两个表都有我可以加入的 PersonID 列。但是,LedgerSummary 有一个 Amount 字段。如果我进行常规的左连接或右连接,SUM(Amount) 将是错误的,因为这两个表是如何相关的。这就是我希望 Amount 每个人而不是每一行只出现一次的原因。

;With cteTransactions As
(
Select *, Row_Number() Over (Partition By IdThatLinksToTransAndLedger, Order By
    ColumnToGivePriorityOnSelectingOneTransaction) SortOrder
   From Transactions
)  
Select *
   From LedgerSummary L
   Join (Select * From cteTransactions Where SortOrder = 1) T 
      On L.IdThatLinksToTransAndLedger = T.IdThatLinksToTransAndLedger

IdThatLinksToTransAndLedger - 您需要 Person 的密钥 ColumnToGivePriorityOnSelectingOneTransaction - 优先级列,通常是降序给出最近的日期。