我有一个视图,该视图具有数千个从SAP视图中提取的财务交易记录。该视图适用于除付款以外的所有交易类型(发票,贷方,采购订单)。这是由于付款记录重复了它引用的发票数量。下面的示例:
TransactionMstID SupplierID DebtorID TransactionDate TransactionSubmissionDate TransactionRef TransactionValue TransactionStatus CurrencyType TransactionRelatedDocNumber
538685 46 22 2016-05-03 2018-08-02 50356 123578.78 Current ZAR 382
538689 46 22 2016-05-03 2018-08-02 50356 123578.78 Current ZAR 386
问题是付款可能与(TransactionRelatedDocNumber
相关的记录有50条,我不想对重复的TransactionValue
条记录进行求和,因为这会增加总数。有没有办法只选择具有重复的TransactionRef
值的第一条记录?
我希望对此有一个简单的解决方案,以便将数据保留在视图中,而不是移到存储过程中
答案 0 :(得分:1)
一种方法使用row_number()
:
select sum( . . . )
from (select t.*,
row_number() over (partition by TransactionRef order by TransactionMstID) as seqnum
from t
)
where seqnum = 1;