我有一个数据库,我收集了从几个学生那里收取的费用。
我的栏目如下: -
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
可能有相同的入学人数可能已支付过几倍的学费。 现在我只想打印所有输入的录取号码的最后一个值,我该怎么做。
答案 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);