如何在sql server中打印每个录取号码的最后一条记录

时间:2015-06-14 04:12:15

标签: c# asp.net

我有一个数据库,我收集了从几个学生那里收取的费用。

我的栏目如下: -

admno      name           class         section       tuitionfee
SJS001    Arjun        nursery              a          3000
SJS002    akash        nursery              a          2000
SJS001    arjun        nursery              a          1000
SJS005    baldev       class-II             b          5000

可能有相同的入学人数可能已支付过几倍的学费。 现在我只想打印所有输入的录取号码的最后一个值,我该怎么做。

2 个答案:

答案 0 :(得分:1)

如果要打印最后一次录取,则需要添加列admissionDate。然后你可以做这样的事情:

SELECT TOP(1) admno,name,class,section,tuitionfee, ADMISSIONDATE
FROM table_name
Where admno = 'SJS001'
Order by ADMISSIONDATE desc

这是特定于Sql Server的语法。还有其他方法可以实现此结果,例如在子查询中使用MAX(ADMISSIONDATE)

select * 
from a t1 
where 
    t1.admno = 'SJS001' And 
    ADMISSIONDATE = (select max(ADMISSIONDATE) from a t2 where t1.admno = t2.admno)  

答案 1 :(得分:0)

假设您的数据库中有一个Id列来订购条目,那么

在SQL中:

SELECT * from YOUR_TABLE
where id in 
(select max(id)
from YOUR_TABLE
group by admno)

在Linq:

var ids = YOUR_TABLE.GroupBy(y => y.admno).Select(y => y.Max(z => z.Id));
var result = YOURT_TABLE.Join(ids, x => x.Id, y => y, (x,y) => x);