我有一张客户付款的表格,我想为每位用户返回最新的3笔付款。如果新客户只进行了一次购买,那么只显示一次。如果客户已经进行了50次购买,我希望根据日期查看最后3次付款。
我目前正在退回最新的付款,但无法弄清楚如何修改此显示3
c(2, 5, 2)
非常感谢任何帮助或指导。
答案 0 :(得分:0)
在SQL Server中,ROW_NUMBER
函数可能就是这里的方法:
SELECT [Tenant Code], [Trans Date], [Payment Amount], [Payment Type]
FROM
(
SELECT *,
ROW_NUMBER() OVER (PARTITION BY [Tenant Code] ORDER BY [Trans Date] DESC) rn
FROM HIS_vw_tenant_payments
) t
WHERE rn <= 3;
答案 1 :(得分:0)
您可以使用ANSI标准`row_number()函数。像这样:
select p.*
from (select p.*,
row_number() over (partition by [Tenant Code] order by [Trans Date] desc) as seqnum
from HIS_vw_tenant_payments p
) p
where seqnum <= 3;