1

友達、私はこれらのテーブルを持っています:

Contestant Table:
Winner
Peter

Group Table:
Id Name Score Union
1 Bryan 3 77
2 Mary 1 20
3 Peter 5 77
4 Joseph 2 25
5 John 6 77

グループテーブルのピーターに5点追加したい。それで、私はこのクエリを思いつきました。

UPDATE Group 
SET Score = Score+5
FROM Contestant, Group 
WHERE Contestant.Winner = Group.Name

さて、私はまた、77であるピーターと同じユニオンに5の追加スコアを与えたいと思います。

どうすればそれを1つのクエリとして既存のクエリに統合できますか?

//更新1

上記と同様の質問がありますが、3つのテーブルを使用しています。

1. Company (table)
CONAME
COPOINTS

2. Group_Member (table)
CONAME
NAME

3. Member (table)
NAME
MPOINTS

私は次の条件で以下の答えのように正しいクエリを持っていたいです:

Update Member
Set MPOINTS=MPOINTS+5
Where Company.CONAME=Group_Member.CONAME
And
Group_Member.NAME=Member.NAME

上記の質問を訂正していただけますか?

4

2 に答える 2

0
update u set score = score + 5
from contestant c
inner join group g on g.name = c.winner
inner join group u on u.union = g.union

明確ではありませんが、勝者にさらに5ポイントを受け取ってもらいたい場合は、次のようにします。

update u set score = (case
  when u.name = c.winner then score + 10
  else then score + 5 end)
from contestant c
inner join group g on g.name = c.winner
inner join group u on u.union = g.union
于 2012-11-11T04:52:57.483 に答える
0
UPDATE Group 
SET Score = Score+5
WHERE [Union] = (
    SELECT [Union] 
    FROM Group, Contestant 
    WHERE Group.Name = Contestant.Winner)
于 2012-11-11T04:52:58.340 に答える