2009-11-04 107 views
2

的第一行我有一個查詢(A),可以在日期順序返回多行:T-SQL:更新記錄

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

是不同的結果集A中的數據總是與B中的結果相關?此外,您要更新結果集A中的哪些/哪些字段? – 2009-11-04 21:12:19

+1

請告訴我們你想要的結果數據集看起來像什麼。 – 2009-11-04 21:19:42

回答

1

我發現我的答案是:

row_number() OVER (PARTITION BY encounter_id ORDER BY encounter_id, effective_time) row. 

不幸的是,該數據庫具有阻​​止我接近解決這樣的數據質量問題。

感謝您的協助。

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子句

問候, 孜

+0

我更喜歡這種方法,謝謝。 – craig 2009-11-04 22:41:44