数据库中有Table History
表中有两个字段 HistoryId,StuId
select HistoryId,StuId
from History
输出结果:
HistoryId StuId
1 23
2 23
3 45
4 89
请问如何写SQL能实现下面的输出结果
HistoryId StuId
1 23
3 45
4 89
如果StuId有复数行的话,只取一行
望高手赐教
------解决方案--------------------
select min(HistoryId ) as HistoryId , StuId from History group by StuId
*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码)
最新版本:20070212
http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html
------解决方案--------------------
select min(HistoryId) as HistoryId, StuId from History group by StuId
------解决方案--------------------
create table History(HistoryId int, StuId int)
insert History select 1, 23
union all select 2, 23
union all select 3, 45
union all select 4, 89
select * from History as tmp
where not exists(select 1 from History where StuId=tmp.StuId and HistoryId <tmp.HistoryId)
--result
HistoryId StuId
----------- -----------
1 23
3 45
4 89
(3 row(s) affected)