现假设year,number唯一,sql语句写法如下:
select
a.[id] as IDA,b.[id] as IDB,a.[year] as YEARA,b.[year] as YEARB,
a.[number] as NumberA,b.[number] as NumberB,a.[text] as testA,b.[text] as testB
from [tab1] a ,[tab1] b
where a.[year]=(select top 1 x.[year] from [tab1] x where x.[number]=b.[number] and x.[year]>=b.[year]-1 order by x.[year]) and a.[number]=b.[number]
and a.[year]!=b.[year]
order by a.[id]
前提:能进行加减运行的必须是数值类型number,或者是时间类型。字符串类型无法进行加减!SQL语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统可以使用相同的结构化查询语言作为数据输入与管理的接口。
SQL语言语句可以嵌套,这使他具有极大的灵活性和强大的功能。
掌握了基本的SQL语句语法,就像英语语法一样,就能够对SQL语句运用来去自如!
如果字段‘数量’为数值型 直接用+,-,*,/
如果字段‘数量’为非数值型,则转换为数值型,eg:转换为int型 convert(int,‘数量')
或cast('数量' as int)
之后再用+,-,*,/
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)