SQL Server特殊显示最后一行
我有一个学生SQL Server特殊显示最后一行,sql,sql-server,Sql,Sql Server,我有一个学生 ID ( auto incremment) Nume Sum DataEnter 1 Alex 100 2013-05-20 2 Marian 200 2014-04-14 3 Vasile 150 2012-01-01 4 Andrei
ID ( auto incremment) Nume Sum DataEnter
1 Alex 100 2013-05-20
2 Marian 200 2014-04-14
3 Vasile 150 2012-01-01
4 Andrei 100 2013-05-04
5 Teo 200 2013-02-11
我使用此选项显示重复的:
SELECT ID, Nume, Sum, DataEnter, FROM dbo.student
Where ISNULL(Sum, 0) IN (Select ISNULL (Sum,0) from dbo.student
group BY SUM
HAVING COUNT(*)>1 )
order by SUM desc, ID desc, DataEnter desc
显示以下内容:
200 5 Teo 2013-02-11
200 2 Marian 2014-04-14
100 4 Andrei 2013-05-04
100 1 Alex 2013-05-20
200 5 Teo 2013-02-11
200 2 Marian 2014-04-14
100 6 Costy 2014-05-27
100 4 Andrei 2013-05-04
100 1 Alex 2013-05-20
现在:我输入一个新数据,例如:
100 6 Costy with today dataenter day : 2014-05-27
显示以下内容:
200 5 Teo 2013-02-11
200 2 Marian 2014-04-14
100 4 Andrei 2013-05-04
100 1 Alex 2013-05-20
200 5 Teo 2013-02-11
200 2 Marian 2014-04-14
100 6 Costy 2014-05-27
100 4 Andrei 2013-05-04
100 1 Alex 2013-05-20
我想显示输入“按日期排序”的最后一个重复类别。我想展示:
100 6 Costy 2014-05-27
100 4 Andrei 2013-05-04
100 1 Alex 2013-05-20
200 5 Teo 2013-02-11
200 2 Marian 2014-04-14
因为100 7 Costy 2014-05-27是最后一个参赛者。我希望这会对你有所帮助
Set Dateformat ymd
Declare @Student table
(ID int identity(1,1), Name varchar(20),[Sum] int,DataEnter Date)
Insert into @Student Values
('Alex' ,100,'2013-05-20'),
('Marian' ,200,'2014-04-14'),
('Vasile' ,150,'2012-01-01'),
('Andrei' ,100,'2013-05-04'),
('Teo' ,200,'2013-02-11')
Select A.Sum,A.ID,A.Name,A.DataEnter
From @Student A
Join (
Select Sum [Sum],max(DataEnter) DataEnter
from @Student
group By Sum
having Count(*) > 1) Lu
On A.Sum = Lu.Sum
order By Lu.DataEnter Desc,A.ID Desc
结果
添加记录
Insert into @Student Values
('Costy' ,100,'2014-05-27')
Select A.Sum,A.ID,A.Name,A.DataEnter
From @Student A
Join (
Select Sum [Sum],max(DataEnter) DataEnter
from @Student
group By Sum
having Count(*) > 1) Lu
On A.Sum = Lu.Sum
order By Lu.DataEnter Desc,A.ID Desc
结果
再添加一条记录
Insert into @Student Values
('Mary' ,200,'2015-05-27')
Select A.Sum,A.ID,A.Name,A.DataEnter
From @Student A
Join (
Select Sum [Sum],max(DataEnter) DataEnter
from @Student
group By Sum
having Count(*) > 1) Lu
On A.Sum = Lu.Sum
order By Lu.DataEnter Desc,A.ID Desc
结果
你的确切问题是什么?已经是2015-05-27了吗?Sh*t。。我落后了一年……)你不应该按重新排列顺序吗?类似于:
orderbysum DESC,DataEnter DESC,ID DESC
?