我的问题应该不难:
比如有一张学生成绩单数据表TB,涉及到的字段有记录ID,学生标识SID,测试日期TDate,体育成绩Grade。当一条新的记录插入以后(Grade默认值是-1),我想用Update语句更改Grade的值为该学生上一次(按测试日期TDate)的Grade值。以便使用者在上次值的基础上修改。如果该学生(SID)没有上一次记录(第一次录入),Grade则以NULL代之。
能否用一条语句Update实现,不要存储过程。谢谢!
------解决方案--------------------
- SQL code
--> 测试数据: @TBdeclare @TB table (ID int identity(1,1),SID int,TDate datetime,Grade int)insert into @TBselect 2,'2012-01-01',83 union allselect 3,'2012-02-01',59 union allselect 4,'2012-04-01',89select * from @TBinsert into @TB select 5,getdate(),(select top 1 Grade from @TB order by TDate desc)select * from @TB/*ID SID TDate Grade----------- ----------- ----------------------- -----------1 2 2012-01-01 00:00:00.000 832 3 2012-02-01 00:00:00.000 593 4 2012-04-01 00:00:00.000 894 5 2012-08-12 18:52:33.747 89*/
------解决方案--------------------