2016-11-19 3 views
1

私はここに牛を持っています。私は次のように、現時点では3つのテーブルで構成されていホッケープールデータベースを、設計しています:データベース内の2つのテーブルからポイントを追加するSQLクエリ

Table 1     Table 2     Table 3 
TeamID TeamName  GoalieID TeamID Points SkaterID TeamID Points 
1  Marlies  1  1  10  1  4  20 
2  Colts   2  3  5   2  1  25 
3  Sting   3  2  6   3  3  7 
4  Steelheads  4  4  7   4  2  12 

実際のテーブルは、多くの選手やチームを持っている、これは単なる一例です。 私は、Table2とTable3の各プレーヤーのポイント合計を組み合わせるクエリを作成し、この情報をチーム名の横に表示することを検討しています。

Team Name  Total Points 
Steelheads  27 
Marlies  25 
Colts   18 
Sting   12 

私は何の問題単一のテーブルからのポイントを合計するが、残念ながら、私は悩み複数のテーブルにまたがるポイントを組み合わせることのまわりで私の頭をラップを抱えているがありません。誰かが正しい方向に私を向けることができますか?

+0

? –

+0

MSAccessデータベースです。 –

+0

...昨夜私はmcNetsからのクエリが入れ子にされたJOINの周りのカッコがないことに気付いた。それはそれを修正した。 –

答えて

0
SELECT 
    Table1.TeamName, 
    sum(isNull(Table2.Points,0) + isNull(Table3.Points,0)) as TotalPoints 
FROM 
    Table1 
    LEFT JOIN Table2 
     ON Table1.TeamId = Table2.TeamId 
    LEFT JOIN Table3 
     ON Table1.TeamId = Table3.TeamId 
GROUP BY 
    Table1.TeamName 
+0

ありがとうございます...残念ながら、それはエラーをスローします - クエリ式 'PoolTeams.ID = MondaySkaterStats.PoolTeam構文エラー(演算子がありません)左にジョイン月曜日ゴールキーオンのON PoolTeams.ID = MondayGoalieStats.PoolTeam' –

+0

-----これはしばらくの間、私はそれを修正することができます参照してください。正しい方向に私を助けてくれてありがとう。 –

+0

NULL +値= NULLに注意してください。 – jarlh

1

ゴールキーパーを含め、一度に全てのプレイヤーを取得するために、派生テーブル(p)でUNION ALLを行います。 LEFT JOINその結果を得て、選手のポイントを持つチームをすべて獲得する。最後にGROUP BYを行い、ポイントを合計します。あなたはDBMSを使用している

SELECT t1.TeamName, sum(p.Points) as TotalPoints 
FROM Table1 t1 
LEFT JOIN (select TeamID, Points from Table2 
      union all 
      select TeamID, Points from Table3) p 
     ON t1.TeamId = p.TeamId 
GROUP BY t1.TeamName 

(あなたが同じテーブル内のすべてのプレーヤーを持っていると考えていますか?)

+0

返信いただきありがとうございます。私はこれを渦巻きにして、何が起こるか見る。私はmcNetsの提案を進めることに成功しましたが、数字はうんざりしていて、何が原因なのか分かっていると思います。私はすべてのテーブルを1つ持つことを考えましたが、ゴールテーブルにはスケーターがないフィールドがあります。これはスケーターテーブルに空のフィールドが多すぎるようにします....最終的に私はそのように行かなければならないかもしれません。再度、感謝します。 –

+0

それは働いた!!!!私はいくつかのWHERE条件文をクエリに追加して、私が探しているものを私に与えています。私は昨日ユニオンとサブクエリを試してみたが、誰も私のために働いていないと言わざるを得ない。おそらく、私は本当に疲れていて気分が悪かったからだ。どうもありがとうございました!!!! –

+0

ホッケーはゲームです! – jarlh

関連する問題