2011-02-03 11 views
0

これは私が達成したいものです。間違っSQLServerの構文に

4テーブルが関与している:PK

  • するresultIdでの結果と同様にPKとしてPlayerIDと

    • プレーヤー、CompetIDと
    • 大会PKおよびCompetIDをFKとして

    そして、第4のテーブル:ResultID + PlayerIDがPKおよびCompetIであるPlayerResultts私は新しい列としてDを作成しました。

    は、すでにに設定されており、現在までに300,000人のPlayerResultsになっています。

    PlayerResults.CompetID列に値を設定するには、Update ...(Select ....)リクエストを試しますが、正しい構文を認識できず、失敗します。ここで

    は私の微弱な試みです:

    update PlayerResults 
    set competid = (select distinct(r.competid) from results r, playerresults p 
    where r.resultID = p.resultid) 
    

    エラーが(もちろん)です:

    「メッセージ512、レベル16、状態1、行1 サブクエリは複数の値を返しこれがあります。 =、!=、<、< =、>、> =またはサブクエリが式として使用されているときは許可されません。

    誰かが私を正しい方向に向けることができますか? TIA

  • +3

    明確な必要はありません。 – BoltClock

    +0

    再度、回答受諾についてのコメント!私は有用な回答を受け入れますが、問題はありません。私は何も受け付けていません。 –

    答えて

    2

    は、あなたがより多くの答えを受け入れる必要が

    update PlayerResults 
    set competid = r.competid 
    from results r 
    where r.resultID = PlayerResults.resultid 
    
    +0

    @ user512602あなたの問題は次のとおりです。オリジナルのクエリでは、テーブル*の列とサブクエリの列との間に相関関係が定義されていないので、効果的でした*全体を*とし、それを列に代入しようとします。 cyberwikiが更新されるテーブルのインスタンスを 'results'にどのように関連づけているのか注目してください。 –

    +0

    男、これは素晴らしいです!そして、すばやく答え... StackOverflowはソリューションの明確なソースです。 –

    +0

    私は低料金の25%を見つけられません!料金レベルは貴重な回答を見つけることにかかっています。ここでは時折、数分で回答が得られます。それは言われています、私は本当にあなたがオタクが受け入れと投票に飢えていることに驚いています!あたかも彼らが米ドルであるか、それともユーロであるかのように、ユーロ... –

    関連する問題