2012-06-14 32 views
0

您好我有一個查詢返回兩行數據作爲計數。我想找到列值的總和。我的SQL:找到從查詢中找到的值的總和

(SELECT count(memberid) count 
    FROM `friendRequest`, Member 
    where status = 2 and memberid = sender and receiver = 19) 
UNION 
(SELECT count(memberid) count 
    FROM `friendRequest`, Member 
    where status = 2 and memberid = receiver and sender = 19) 

我一直在使用SELECT SUM(我上面的查詢),但我得到的錯誤嘗試。有人可以幫幫我嗎。我只需要一些以上的值。

問候 潘卡

+0

SUM應該這樣做......你得到什麼錯誤? – GDP

+0

當你使用SUM時,你得到的錯誤是什麼? – alfasin

+0

是的,告訴我們你想要做什麼,因爲我認爲這個查詢可以改進 – jcho360

回答

4

可以抓取兩個結果集中在一個單一的查詢:

SELECT count(memberid) count 
FROM `friendRequest`, Member 
WHERE status = 2 AND (
    (memberid = sender AND receiver = 19) OR 
    (memderid = receiver AND sender = 19) 
) 
+0

感謝Bort現在看起來很簡單。我已經使查詢複雜化 – pankaj

0

嘗試:

SELECT SUM(count) 
FROM 
    ...the rest of your query... 
0

如果你要使用的聚集,需要組它通過使用東西GROUP BY

(SELECT count(memberid) SUM(count) 
    FROM `friendRequest`, Member 
    where status = 2 and memberid = sender and receiver = 19 
    GROUP BY Member) 
UNION 
(SELECT count(memberid) SUM(count) 
    FROM `friendRequest`, Member 
    where status = 2 and memberid = receiver and sender = 19 
    GROUP BY Member) 
0

繼將正常運行是

SELECT SUM(count) 
FROM (
     (SELECT count(memberid) count 
      FROM `friendRequest`, Member 
      where status = 2 and memberid = sender and receiver = 19) 
      UNION 
     (SELECT count(memberid) count 
      FROM `friendRequest`, Member 
      where status = 2 and memberid = receiver and sender = 19) 
     ) AS anyAliasWillDo 

,但我強烈建議你停止使用隱式連接(過時)並開始使用顯式連接語法。聲明然後變成

SELECT SUM(COUNT) 
FROM (
      SELECT COUNT(memberid) AS COUNT 
      FROM `friendRequest` AS fr 
        INNER JOIN Member AS m ON m.memberid = fr.sender 
      WHERE status = 2 AND receiver = 19 
      UNION ALL 
      SELECT COUNT(memberid) AS COUNT 
      FROM `friendRequest` AS fr 
        INNER JOIN Member AS m ON m.memberid = fr.receiver 
      WHERE status = 2 AND sender = 19 
     ) AS AnyAliasWillDo 
+0

聚合函數(SUM)不需要GROUP BY子句嗎? –

+0

@StanislavPalatnik - 不像這裏寫的那樣。正如你的答案所寫,是的,它的確如此。 –