27,579
社区成员
发帖
与我相关
我的任务
分享
--按 合同号,金额分组 后 按 日期排序 取第一条
select *
from
(
SELECT row_number()over(partition by 合同号,金额 order by 日期) as N,*
FROM TABLE
) as T
where T.N=1;
--SQL2005
SELECT 合同号,金额 FROM(
SELECT 合同号,金额
,ROW_NUMBER()OVER(PARTITION BY 合同号 ORDER BY 日期 DESC)RN
FROM TB
)T
WHERE RN=1
--兼容SQL2000
SELECT 合同号,金额 FROM TB T1
WHERE NOT EXISTS(SELECT 1 FROM TB T2 WHERE T1.合同号=T2.合同号 AND T1.日期<T2.日期)
方法还是有的,我就举两个吧