2017-08-28 97 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;