SQL 服务器 : connect two results with specific row

标签 sql sql-server

我有一张用户表和一张他们的契约(Contract)表。我有两个选择。第一个,从用户表中选择所有用户,第二个,只为“今天”选择新用户(从另一个用户表)。我需要将这两个结果联系起来,但是有一个问题。

每个用户都有“rownumber”列,这取决于每个用户的契约(Contract)数量(每个用户可以有 1 个或多个契约(Contract))。我需要为新行获取新行号。看例子

第一个选择返回:

user_id | contract_id | rownumber
1         456           1
1         457           2
1         699           3

第二个选择为这些用户选择新行:

user_id | contract_id
1         1024
1       | 1079

我需要连接这些结果以获得最终结果:

user_id | contract_id | rownumber
 1         456           1
 1         457           2
 1         699           3
 1         1024          4
 1         1079          5

我该怎么做?

最佳答案

;with cte
as
(
select 
user_id,contractid from table1
union all
select 
user_id,contractid from table2
)
select *,row_number() over (partition by user_id order by contractid ) from cte

关于SQL 服务器 : connect two results with specific row,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38990767/

相关文章:

sql - 修剪 MS Access SQL 中的前导零

SQL Server 分组

SQL Server - 遇到 0 时重置的累积总和

SQLite:SELECT 语句中的累加器(求和)列

sql-server - SQL Server 代理 - 获取我自己的 job_id

sql-server - SQL Server 索引 - 索引中包含哪些列?

sql - 创建 SQL 'LIKE' 语句来查找特定的数字和字母模式

java - java 开发人员在 oracle 数据库中的自动增量

php - 一次将 mysql 转换为 pdo 一个脚本

mysql - 多表 SQL SELECT 语句