早教吧 育儿知识 作业答案 考试题库 百科 知识分享

数据库查询,一个表如何加减乘除计算结果后挑选出条件相等行?例如我有如下一个表:idyearnumbertext1201113dfsd12201116dfsd23201114dfsd34201111dfsd45201213dfsd36201215dfsd47201214dfsd38201216dfsd4

题目详情
数据库查询,一个表如何加减乘除计算结果后挑选出条件相等行?
例如我有如下一个表:
id year number text
1 2011 13 dfsd1
2 2011 16 dfsd2
3 2011 14 dfsd3
4 2011 11 dfsd4
5 2012 13 dfsd3
6 2012 15 dfsd4
7 2012 14 dfsd3
8 2012 16 dfsd4
想取得结果如下:
IDA IDB YEARA YEARB NumberA NumberB testA testB
1 5 2011 2012 13 13 dfsd1 dfsd3
2 8 2011 2012 16 16 dfsd2 dfsd4
3 7 2011 2012 14 14 dfsd3 dfsd3
查找条件:
Year字段等于Year-1的行的Number与之相同的行合并成上面的结果.
例如2011-1=2010,没有year字段等于2010,一直向下查询到2012-1=2011,查询2011所有行里是否有与Number相等的行.
▼优质解答
答案和解析
如果该表的year+number不唯一,则需要提供一个具有唯一值的字段或字段组.
现假设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]
看了 数据库查询,一个表如何加减乘...的网友还看了以下:

1、一个小数的小数点向左移动一位后,比原来减少0.18,原来的小数是().2、一个数除以3余2,除  2020-05-14 …

一个正方形的周长是二十九分之八米,它的面积是多少?大约从一万年前开始,青藏高原就在不断长高.五十年  2020-05-15 …

幼儿园给小孩分苹果,如果每个人3个,则少一个,如果每个人5二个,则也少1个.幼儿园有多少个小朋友?  2020-06-03 …

仿写句子石间细流脉脉,如线如缕;林中碧波闪闪,如锦如缎.湖上烟雨蒙蒙,如诗如画;叶上水珠点点,如玉  2020-06-12 …

在《九章算术》中,将有三条棱互相平行且有一个面为梯形的五面体称之为羡除,现有一个羡除如图所示,面A  2020-06-13 …

一个数除以另一个数,商是6,如果被除数不变,除数扩大2倍,商是,如果被除数扩大3倍,除数不变,商是  2020-06-16 …

用成语来解释一个字如何变成另一个字,例如杭——航(木已成舟)砍——钦(仿照例子,用成语来解释一个字  2020-06-19 …

除了老虎,狼,熊,鳄鱼之外还有什么凶猛的动物怕什么颜色或什么物体除了老虎,狼,熊,鳄鱼之外还有什么  2020-07-01 …

判断题对的打勾,错的打×谢谢了,1.黑兔是白兔的7分之3,是把白兔的指数看作单位"1".2.一个数  2020-07-10 …

对自然数1,2,3,…,1000中的每一个数,将它的非零数字相乘,得到1000个积(如203的积为  2020-07-18 …