T-SQL:更新记录集的第一行

T-SQL:更新记录集的第一行,sql,sql-server,tsql,Sql,Sql Server,Tsql,我有一个查询(a),可以按日期顺序返回多行: SELECT encounter_id, department_id, effective_time FROM adt WHERE event_type IN (1,3,7) ORDER BY effective_time 我还有一个查询(B)返回一行: SELECT encounter_id, department_id, arrival_time FROM ed WHERE event_type = 50 我想将查询B连接到查询A

我有一个查询(a),可以按日期顺序返回多行:

SELECT encounter_id, department_id, effective_time
FROM   adt
WHERE  event_type IN (1,3,7)
ORDER BY effective_time
我还有一个查询(B)返回一行:

SELECT encounter_id, department_id, arrival_time
FROM   ed
WHERE  event_type = 50
我想将查询B连接到查询A,这样查询B的单行将与查询A的第一条记录相关联

我意识到我可以用光标来实现这一点,但我希望使用T-SQL row_number()函数。

我找到了答案:

row_number() OVER (PARTITION BY encounter_id ORDER BY encounter_id, effective_time) row.
不幸的是,数据库存在数据质量问题,使我无法以这种方式处理解决方案


谢谢你的帮助。

我不确定我的问题是否正确。 如果下面的解决方案与您期望的不同,请告诉我

SELECT *
FROM
(
    SELECT   TOP 1
         encounter_id, department_id, effective_time 
    FROM     adt 
    WHERE    event_type IN (1,3,7) 
    ORDER BY effective_time 
)adt1,
(
    SELECT   encounter_id, department_id, arrival_time 
    FROM     ed 
    WHERE    event_type = 50 
) ed1
然后可以根据需要使用WHERE子句连接这两个表

问候,,
Niyaz

结果集A中的数据是否与B中的结果相关?此外,您希望更新resultset A中的哪些字段?请向我们展示您希望生成的数据集的外观。