在sql Server-2005中查找Pramary ID中的最后一条记录

在sql Server-2005中查找Pramary ID中的最后一条记录

问题描述:

嗨......我在每张身份证记录中都找到了最后一条记录。



Hi....I have Find last record in each ID records.

ID	SID	Amount	Pay	Due
1	1	10000	2000	8000
2	2	10000	3000	7000
3	3	10000	5000	5000
4	1	10000	3000	5000
5	2	10000	5000	2000
6	3	10000	2000	3000
7	1	10000	1000	4000
8	2	10000	1000	1000





例如:Out Put。



For Eg:Out Put.

SID Due
1   4000
2   1000
3   3000

试试这个:

Try this:
SELECT t1.SID, t1.DUE
FROM YourTable AS t1 RIGHT JOIN (
    SELECT SID, MAX(ID) AS ID
    FROM YourTable
    GROUP BY SID) AS t2 ON t1.SID =t2.SID AND t1.ID=t2.ID
ORDER BY t1.SID


>


检查以下脚本



Hi,

Check the following script

DECLARE @AmtDtls TABLE(ID INT,SID INT, Amount NUMERIC(9,0), Pay NUMERIC(9,0), Due NUMERIC(9,0))
INSERT INTO @AmtDtls (ID, SID, Amount, Pay , Due )
SELECT 1, 1, 10000, 2000, 8000
UNION ALL
SELECT 2, 2, 10000, 3000, 7000
UNION ALL 
SELECT 3, 3, 10000, 5000, 5000
UNION ALL
SELECT 4, 1, 10000, 3000, 5000
UNION ALL
SELECT 5, 2, 10000, 5000, 2000
UNION ALL
SELECT 6, 3, 10000, 2000, 3000
UNION ALL
SELECT 7, 1, 10000, 1000, 4000
UNION ALL
SELECT 8, 2, 10000, 1000, 1000

SELECT A.SID, A.Due 
FROM @AmtDtls A
INNER JOIN (SELECT MAX(ID) ID, SID FROM @AmtDtls GROUP BY SID) T ON T.ID=A.ID
ORDER BY A.SID



问候,

GVPrabu


Regards,
GVPrabu