sql-server - 如何根据sql中的另一列获取列中的增量值
问题描述
我有下表记录。对于每个 TranNo,我必须在预期结果列中增加一个。可能吗?
如何在 sqlserver 中得到这个结果?
我无法得到适当的结果
<Expected Result>
1
1
2
3
4
5
6
7
8
我试过了:
SELECT BatchNo,
TranNo,
WorkSource
FROM table1 WITH (NOLOCK)
WHERE BatchNo IN ('0000000420', '0000000421', '0000000422')
AND PROCESSDATE = '20190206'
GROUP BY WorkSource,
BATCHNO,
TranNo;
解决方案
你可以试试这个
create table #temp (WorkSource char(3), BatchNo char(3), TranNo int)
insert into #temp values
('012', '001', 1),
('012', '001', 1),
('012', '001', 2),
('012', '001', 3),
('012', '002', 1),
('012', '002', 2),
('012', '003', 3),
('013', '005', 1),
('013', '005', 2)
SELECT *, Dense_Rank() OVER(ORDER BY BatchNo, TranNo) AS Row_Number
FROM #temp
推荐阅读
- python - 使用 Google Drive API 获取所有文件列表时如何解决“超出未经身份验证使用的每日限制”
- node.js - WebSockts + Angular 5 + nodejs(express,Typescript) 实现
- terraform - Terraform 外部数据源作为提供者的输入
- markdown - Hugo:如何将图像存储在与帖子相同的目录中?
- php - 警告:mysqli_stmt_bind_param():类型定义字符串中的元素数与中的绑定变量数不匹配
- javascript - 在量角器循环内执行多个 it 块并使用 IT 块中的变量
- reactjs - 获取状态中的递增变量
- ruby-on-rails - Rails 5 InvalidAuthenticityToken Coffeescript
- php - 将变量传递给 Blade 导致 increment() 将 DB 字段增加两次
- python - 如何从给定的二叉搜索树的后序遍历中找到前序遍历