2016-03-01 98 views
0

我想做一個子查詢來找出兩個信息。這裏是我得到Mysql subquery group by error

SELECT b.boroughName, SUM(c.crimeCount), 
    (SELECT SUM(c.crimeCount) 
    FROM FYP_Borough b JOIN FYP_Crime c on b.boroughID=c.boroughID 
    WHERE offenceID=8 
    GROUP BY boroughName) AS DrugUse 
FROM FYP_Borough b JOIN FYP_Crime c ON b.boroughID=c.boroughID 
GROUP BY b.boroughName 

此代碼是我得到的錯誤: 子查詢返回多個1行

我通過boroughName想組,否則它給我的每個字段的值相同。我該怎麼做呢?

回答

0
SELECT b.boroughName, SUM(c.crimeCount), 
    SUM(CASE WHEN offenceID=8 THEN c.crimeCount ELSE 0 END) 
AS DrugUse 
FROM FYP_Borough b JOIN FYP_Crime c ON b.boroughID=c.boroughID 
GROUP BY b.boroughName 
+0

非常感謝你的工作。 Case聲明如何工作? – armze3

+0

你好。 情況 CONDITION1然後表達式 然後CONDITION2時當表達式2 ..... 別的expressionN 端 它評估,並且如果相應的條件爲真返回表達。在這個查詢中,它針對每一行查看c.crimeCount或零來評估。然後根據您的邏輯進行分組。 –