首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

想问个SQL有关问题 高手快来啊

2012-12-16 
想问个SQL问题 高手快来啊。。就是我现在有一个表table1单据号日期产品编码111.1a111.2a111.3b211.1a211.2c3

想问个SQL问题 高手快来啊。。
就是我现在有一个表table1       
单据号  日期  产品编码
1          11.1      a
1          11.2      a
1          11.3      b
2          11.1      a
2          11.2      c
3          11.1      b
4          11.1      c
5          11.1      a
5          11.2      c
5          11.3      b
6          11.1      a

然后我想增加一列叫做行号
就是如果单据号与上一个单据号相同
就+1
不同 就默认为1 这样子 
应该怎么写啊??
[最优解释]
 select *,ROW_NUMBER() over(partition by 单据号 order by 单据号)
 from table1
[其他解释]


[其他解释]
不同默认为1是什么意思?最好把想要的结果贴出来,会更清晰点
[其他解释]

引用:
select *,ROW_NUMBER() over(partition by 单据号 order by 单据号)
 from table1


你好 这样是可以解决了
但是如果我想默认为2 然后每次增加2 那又怎么办?
[其他解释]
引用:
不同默认为1是什么意思?最好把想要的结果贴出来,会更清晰点



单据号  行号  日期  产品编码
1        2  11.1      a
1        4  11.2      a
1        6  11.3      b
2        2  11.1      a
2        4  11.2      c
3        2  11.1      b
4        2  11.1      c
5        2  11.1      a
5        4  11.2      c
5        6  11.3      b
6        2  11.1      a

差不多可以理解为这样子?
这样子怎么解?
[其他解释]
select *,rm*2 from(select *,ROW_NUMBER() over(partition by 单据号 order by 单据号) rm
 from table1)
或者
select *,ROW_NUMBER() over(partition by 单据号 order by 单据号)+ROW_NUMBER() over(partition by 单据号 order by 单据号) rm


 from table1
[其他解释]
select *,ROW_NUMBER() over(partition by 单据号 order by 单据号)*2 as rowid
  from table1
[其他解释]
select *,(ROW_NUMBER() over(partition by 单据号 order by 单据号))*2 as rowid
  from table1
这样括起来 应该是对的
[其他解释]

引用:
select *,(ROW_NUMBER() over(partition by 单据号 order by 单据号))*2 as rowid
  from table1
这样括起来 应该是对的


那那那 如果是 初始为2 每次增加1呢?????????
对不起啊。。。我新手问题多。。
[其他解释]
select *,(ROW_NUMBER() over(partition by 单据号 order by 单据号))+1 as rowid
   from table1
[其他解释]
引用:
select *,(ROW_NUMBER() over(partition by 单据号 order by 单据号))+1 as rowid
   from table1


谢谢你  我大概知道怎么做了
[其他解释]
null

热点排行