22,210
社区成员
发帖
与我相关
我的任务
分享
SELECT 'A' ID ,'2014-11-11' STRDATE,'4' BILLNO INTO #t
UNION ALL
SELECT 'A' ID ,'2014-11-10' STRDATE,'8' BILLNO
UNION ALL
SELECT 'C' ID ,'2014-11-09' STRDATE,'4' BILLNO
UNION ALL
SELECT 'C' ID ,'2014-12-09' STRDATE,'5' BILLNO
UNION ALL
SELECT 'A' ID ,'2014-11-08' STRDATE,'7' BILLNO
UNION ALL
SELECT 'B' ID ,'2014-11-07' STRDATE,'6' BILLNO
;with cte as(
select ID,MAX(STRDATE) AS MX
from #t
Group by ID
),
cte1 as(
select ID,MX,
row_number()over(order by mx desc) as SN
FROM cte
)
select #t.ID,#t.STRDATE,#t.BILLNO,SN from cte1
JOIN #t ON #t.ID=cte1.ID
Order by SN asc,STRDATE desc
drop table #t
SELECT 'A' ID ,'2014-11-11' STRDATE,'4' BILLNO INTO #t
UNION ALL
SELECT 'A' ID ,'2014-11-10' STRDATE,'8' BILLNO
UNION ALL
SELECT 'C' ID ,'2014-11-09' STRDATE,'4' BILLNO
UNION ALL
SELECT 'C' ID ,'2014-12-09' STRDATE,'5' BILLNO
UNION ALL
SELECT 'A' ID ,'2014-11-08' STRDATE,'7' BILLNO
UNION ALL
SELECT 'B' ID ,'2014-11-07' STRDATE,'6' BILLNO
;with cte as(
select ID,MAX(STRDATE) AS MX
from #t
Group by ID
),
cte1 as(
select ID,MX,
row_number()over(order by mx desc) as SN
FROM cte
)
select #t.ID,#t.STRDATE,#t.BILLNO,SN from cte1
JOIN #t ON #t.ID=cte1.ID
Order by SN
drop table #t
WITH table1(id,dt) AS (
SELECT 'A','2014-11-11' UNION ALL
SELECT 'A','2014-11-10' UNION ALL
SELECT 'C','2014-11-09' UNION ALL
SELECT 'C','2014-12-09' UNION ALL
SELECT 'A','2014-11-08' UNION ALL
SELECT 'B','2014-11-07'
)
,o AS (
SELECT id, MAX(dt) mdt
FROM table1
GROUP BY id
)
SELECT t.*
FROM table1 t
JOIN o
ON o.id = t.id
ORDER BY o.mdt DESC, t.id, t.dt DESC
id dt
---- ----------
C 2014-12-09
C 2014-11-09
A 2014-11-11
A 2014-11-10
A 2014-11-08
B 2014-11-07