我有一个查询(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的第一个记录相关联。
我意识到我可以用CURSOR做到这一点,但我希望使用T-SQL row_number()函数。
答案 0 :(得分:2)
不确定我的问题是否正确。 如果以下解决方案与您期望的不同,请告诉我
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子句
连接两个表此致 孜
答案 1 :(得分:1)
我找到了答案:
row_number() OVER (PARTITION BY encounter_id ORDER BY encounter_id, effective_time) row.
不幸的是,数据库存在数据质量问题,导致我无法以这种方式接近解决方案。
感谢您的协助。