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 

最初のテーブルは、2番目のテーブルから次のように更新する必要があります。(つまり、結果値)

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」は、T2OpenDateがT1Opendateよりも小さいため、3行で更新されます。また、この日付は他の3つの上位T1OpenDateよりもわずかに大きく、4番目のT1OpenDateよりも小さいため、2012-02-22の発生は1回だけです。

誰かが私に上記のUPDATEsqlqueryを提案できますか?助けてくれてありがとう。

4

1 に答える 1

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

AaronBertrandのcommnetに従って編集されました。

この特定のスキルをさらに向上させたい場合は、これを読むことをお勧めします。SQLServerのSELECTから更新するにはどうすればよいですか。

于 2012-07-09T18:58:50.633 に答える