2009-04-09 74 views
1

我试图编写一个查询,输出类似于以下最后一批记录的内容。为了确保它工作在Reporting Services和Crystal Reports,但只是把它扔在这里,看它是否在SSMS/QA是可能的:SQL Server:显示分组记录的第一行

 
Table: 
id name amount 
-- ---- ------ 
1 rob 23.00 
2 rob 34.00 
3 dan 45.00 
4 dan 56.00 

select name, amount from t1 
Query resulting in: 
name amount 
---- ------ 
rob 23.00 
rob 34.00 
dan 45.00 
dan 56.00 

DESIRED result: 
name amount 
---- ------ 
rob 23.00 
     34.00 
dan 45.00 
     56.00 

谢谢!

回答

3

试试这个:

SELECT CASE WHEN _rank = 1 THEN name ELSE '' END AS name, amount 
FROM (
    SELECT name, amount, 
     ROW_NUMBER() OVER (PARTITION BY name ORDER BY amount ASC) AS _rank 
    FROM t1 
) q 
+0

正是我要找的。谢谢Ekeko! – 2009-04-10 14:11:52