数据库查询,一个表如何加减乘除计算结果后挑选出条件相等行?例-查字典问答网
分类选择

来自季立江的问题

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

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

  例如我有如下一个表:

  idyearnumbertext

  1201113dfsd1

  2201116dfsd2

  3201114dfsd3

  4201111dfsd4

  5201213dfsd3

  6201215dfsd4

  7201214dfsd3

  8201216dfsd4

  想取得结果如下:

  IDAIDBYEARAYEARBNumberANumberBtestAtestB

  15201120121313dfsd1dfsd3

  28201120121616dfsd2dfsd4

  37201120121414dfsd3dfsd3

  查找条件:

  Year字段等于Year-1的行的Number与之相同的行合并成上面的结果.

  例如2011-1=2010,没有year字段等于2010,一直向下查询到2012-1=2011,查询2011所有行里是否有与Number相等的行.

1回答
2020-05-04 20:10
我要回答
请先登录
康孟珍

  如果该表的year+number不唯一,则需要提供一个具有唯一值的字段或字段组.

  现假设year,number唯一,sql语句写法如下:

  select

  a.[id]asIDA,b.[id]asIDB,a.[year]asYEARA,b.[year]asYEARB,

  a.[number]asNumberA,b.[number]asNumberB,a.[text]astestA,b.[text]astestB

  from[tab1]a,[tab1]b

  wherea.[year]=(selecttop1x.[year]from[tab1]xwherex.[number]=b.[number]andx.[year]>=b.[year]-1orderbyx.[year])anda.[number]=b.[number]

  anda.[year]!=b.[year]

  orderbya.[id]

2020-05-04 20:14:56

最新问答

推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  •