0

我有 2 个表,其值存储如下。

表格1

ReferranceID   StatusNumber   ServiceType            T2OpenDt          T1OpenDT
162987          399519        Orthopaedic Surgery       NULL           2011-08-19 
162987          399525        Acupuncture               NULL           2011-08-19 
162987          413405        Anesthesiology            NULL           2011-09-28 
162987          517174        Chiropractic              NULL           2012-04-26

表2

ReferranceID StatusNumber   Status     T2OpenDate
162987       256033         Closed     2010-11-17 
162987       488518         ReOpen     2012-02-22 

第一个表应该从第二个表更新如下。(即结果值)

ReferranceID   StatusNumber   ServiceType               T2OpenDt          T1OpenDT
162987          399519        Orthopaedic Surgery       2010-11-17         2011-08-19 
162987          399525        Acupuncture               2010-11-17         2011-08-19 
162987          413405        Anesthesiology            2010-11-17         2011-09-28 
162987          517174        Chiropractic              2012-02-22         2012-04-26 

'2010-11-17'将更新为3 行,因为 T2OpenDate 小于 T1Opendate,并且仅出现一次2012-02-22,因为此日期略大于其他 3 个顶部 T1OpenDate 并且小于第 4 个 T1OpenDate。

任何人都可以建议我上面的 UPDATE sqlquery。非常感谢你帮助我。

4

1 回答 1

0
UPDATE Table1
    SET T2OpenDate = (SELECT MAX(Table2.T2OpenDate)
                      FROM Table2 
                      WHERE Table2.T2OpenDate < Table1.T1OpenDate)                       
FROM Table1

根据 Aaron Bertrand 的 commnet 编辑

如果您想更好地掌握这项特殊技能,我建议您阅读以下内容:如何从 SQL Server 中的 SELECT 中进行更新?

于 2012-07-09T18:58:50.633 回答