2017-08-28 10 views
1

この問題で他の投稿を見ましたが、問題の解決方法は不明です。SQLクエリは実行されません。集計関数を実行できません

私は最後の更新声明が問題だと思います。評価の数を評価の数で割った合計であるRatingValueを更新しようとしています。

DELETE 
FROM EasyDNNNewsComments 
WHERE CommentID = 168 

DELETE 
FROM ArticleRating 
WHERE ArticleID = 6605 AND UserID = 10 

UPDATE EasyDNNNews 
SET NumberOfComments = (NumberOfComments - 1) 
WHERE ArticleID = 6605 

UPDATE EasyDNNNews 
SET RatingValue = SUM((SELECT RatingValue 
         FROM ArticleRating 
         WHERE ArticleID = 6605))/
        (SELECT COUNT(*) 
         FROM ArticleRating 
         WHERE ArticleID = 6605) 
+2

だから、ここで問題/エラー/問題は何ですか?あなたはいくつかのサンプルデータを提供できますか? – Tyron78

+0

集計またはサブクエリを含む式で集計関数を実行できません –

答えて

5

あなたはこのために複数のクエリを使用する必要はありません。単に集計値を数値として使用してください。

UPDATE EasyDNNNews 
    SET RatingValue = (SELECT SUM(RatingValue)/COUNT(*) FROM ArticleRating WHERE ArticleID = 6605) 
where ArticleID = 6605 
+0

Sean、WHERE ArticleIDが6605のみ更新されるように更新文を編集できますか?現在、テーブルのすべてのレコードを更新します。しかし値は完全です。 –

+0

@MartinMuldoonは更新を参照してください。 –

+0

パーフェクト。ありがとう! –

1

これを試してみてください:

UPDATE EasyDNNNews 
    SET RatingValue = (SELECT SUM(RatingValue)/COUNT(*) FROM ArticleRating WHERE ArticleID = 6605) 
    WHERE ArticleID = 6605; 
関連する問題