2012-01-23 14 views
0

別のテーブルのMAX(date)に基づいて、テーブル内のdateを更新しようとしています。正しいデータをリンクするには、2つの内部結合と2つの外部結合を行う必要があります。結合によるSQL Serverの更新

私は正しいデータを選択でき、Guid(PersonId)とDateを返します。

元のテーブルを更新するには、この情報を使用する必要があります。これを動作させるのに問題がありますが、まだ構文エラーが出ています。あなたはこのためにSQL Serverを使用していると仮定すると、

update tblqualityassignments as assign 
inner join tblrequirementteams as team on assign.guidmemberid = team.guidmemberid 
set assign.dtmQAPCLed = dtmTaken 
from 
(
    select reg.guidpersonid, max(certs.dtmTaken) as dtmTaken from tblqualityassignments as assign 
    inner join tblrequirementteams as team on assign.guidmemberid = team.guidmemberid 
    inner join tblregisteredusercerts as reg on team.guidpersonid = reg.guidpersonid 
    left outer join tblcerttaken as certs on certs.guidcertid = reg.guidcertid 
    left outer join tblCodesCertType as types on types.intcerttypeid = certs.intcerttypeid 
    where types.intcerttypeid = 1 
    and assign.guidmemberid = team.guidmemberid 
    group by reg.guidpersonid as data 
) 
where data.guidpersonid = team.guidpersonid 

答えて

2

、これは動作するはずです:キーワード '' の近くに

UPDATE A 
SET A.dtmQAPCLed = dtmTaken 
FROM tblqualityassignments AS A 
INNER JOIN tblrequirementteams as T 
ON A.guidmemberid = T.guidmemberid 
INNER JOIN (select reg.guidpersonid, max(certs.dtmTaken) as dtmTaken 
      from tblqualityassignments as assign 
      inner join tblrequirementteams as team 
      on assign.guidmemberid = team.guidmemberid 
      inner join tblregisteredusercerts as reg 
      on team.guidpersonid = reg.guidpersonid 
      left outer join tblcerttaken as certs 
      on certs.guidcertid = reg.guidcertid 
      left outer join tblCodesCertType as [types] 
      on [types].intcerttypeid = certs.intcerttypeid 
      where [types].intcerttypeid = 1 
      and assign.guidmemberid = team.guidmemberid 
      group by reg.guidpersonid) data 
ON T.guidpersonid = data.guidpersonid 
+0

メッセージ156、レベル15、状態1、行17 不正な構文を。 – EvanGWatkins

+0

また、whereステートメントはguidperson id = data.guidpersonidを持つ必要があり、それを得るためには内部でtblrequirementteamsと結合する必要があります。whereステートメントでどのように処理しますか? – EvanGWatkins

+0

@EvanGWatkins - ありがとう、私の答えを更新しました。それが動作するかどうか私に教えてください – Lamak

関連する問題