易截截图软件、单文件、免安装、纯绿色、仅160KB

求sql select 语句一条。 - MS-SQL Server / 基础类


表1 如下:
年, 姓名, 英语
2008, 小张, 60
2008, 小王, 50
2009, 小王, 80
2009, 小张, 60
2010, 小王, 70
2010, 小张, 90


求一条 sql语句后得出以下查询结果。

年, 姓名, 英语,去年英语,比去年多
2008, 小张, 60,<null> <null> /*这条可以不用管*/  
2008, 小王, 50,<null> <null> /*这里可以不用管*/  
2009, 小王, 80, 50 , 30
2009, 小张, 60, 60 , 0
2010, 小王, 70, 80 , -10  
2010, 小张, 90, 60 , 30
SQL code:
if not object_id('tb') is null
drop table tb
Go
Create table tb([年] Datetime,[姓名] nvarchar(2),[英语] int)
Insert tb
select '2008',N'小张',60 union all
select '2008',N'小王',50 union all
select '2009',N'小王',80 union all
select '2009',N'小张',60 union all
select '2010',N'小王',70 union all
select '2010',N'小张',90
Go
Select [年],
[姓名],
[英语],
比去年多=[英语]-(select top 1 [英语]
from tb
where [姓名]=t.[姓名]and [年]<t.[年] )
from tb t
/*
年 姓名 英语 比去年多
----------------------- ---- ----------- -----------
2008-01-01 00:00:00.000 小张 60 NULL
200


相关问答:

sql小小的疑问 - .NET技术 / C#

可能因为工作的原因 接触数据库这块比较少,之前都是做程序这块,数据库这块都有专门的人来做 分工都很明细 所以对数据库这一块完全不了解。前段时间 去面试了几家公司 几乎都是在数据库这块挂掉的 连个简单的SQ ......

求一sql语句 - MS-SQL Server / 疑难问题

现在有两张表:文章主表A(articleId,articleTitle),文章评论表B(commentId,articleId,commentTitle)
现在我想实现这样的功能:列出文章列表,其中每篇文章标题下面列出此文章的前2个文章评论,请问sql语句怎么写啊 ......

MS SQL作业问题 - MS-SQL Server / 应用实例

如何在SQL2005中设定定时作业,比如说定时清理某些表的数据,
或者是定时的将某些表的数据导出excel!
在线等待,急急急,最好是详细步骤!
之前我做的作业有点问题!
帮UP

参考:http://hi.baidu.com/toiota ......

请教SQL语句查询问题? - MS-SQL Server / 基础类

我想查询出每天数据的最大的一个值。表的格式如下
表名: hisdata
字段 编号 值 状态 时间  
  Id value state dattime  
  101 32.3 0 ......

SQL server分解XML - MS-SQL Server / 应用实例

下面是XML初始文件内容
XML code:
<upd:Update xmlns:lar="http://schemas.microsoft.com/msus/2002/12/LogicalApplicabilityRules" xmlns:cmd="http://schemas.microsoft.com/msus/2002/12/Up ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号