1

SUBSCRIBERSサブスクライバーごとに複数のエントリを持つことができるテーブルがあります。

(サブスクライバーではなくなり、再び顧客になったため、「ID」は異なりますが、「サブノ」は同じであるとしましょう)

行の列を更新するステートメントが必要ですがUPDATE(アドレスとしましょう)、そのサブスクライバーの最新のレコード ( latest を使用EffectiveDate) に対してのみです。

だから私はそのような行を選択する方法を考え出しました:

SELECT 
    t1.identity, t1.Subno, t1.EffectiveDate
FROM 
    SUBSCRIBERS t1
INNER JOIN 
    (SELECT subno,max(EffectiveDate) as LatestDate 
     FROM SUBSCRIBERS
     GROUP BY Subno) t2 ON t1.Subno = t2.Subno AND t1.EffectiveDate = t2.LatestDate

しかし、特定の subno 値の行を更新する方法がわかりません。そうですね、しかし、ネストされた 17 個の select ステートメントを使用したくはありません。

ありがとう!

4

1 に答える 1

4

「更新元」を使用できます:

UPDATE SUBSCRIBERS 
SET Address = 'the address' 
FROM SUBSCRIBERS t1
INNER JOIN 
  (SELECT subno,max(EffectiveDate) as LatestDate FROM SUBSCRIBERS
   GROUP BY Subno) t2 
ON t1.Subno = t2.Subno and t1.EffectiveDate = t2.LatestDate
于 2012-11-27T15:28:13.047 に答える