簡體   English   中英

MySQl錯誤:#1140-如果沒有GROUP BY子句,則沒有GROUP列的GROUP列(MIN(),MAX(),COUNT(),…)混合是非法的

[英]MySQl Error : #1140 - Mixing of GROUP columns (MIN(),MAX(),COUNT(),…) with no GROUP columns is illegal if there is no GROUP BY clause

我有一個查詢,用於從選擇總和和列值的表中計算每列的總和。

    $query = "select sum(salleryallowance), 
sum(entertainmentexp),
sum(depreciation), 
sum(electricity), 
sum(securitygard),
sum(machinaryrepaire), 
sum(totalrepairing),
sum(othermaintanaice),
sum(postal_charge),
sum(officeexp), 
sum(stationary),
sum(rent_lease_thresher), 
sum(rent_tractor), 
sum(traivlingallowance),
sum(transportaion_cost), 
sum(bank_commition), 
sum(total_exp),
sum(interest_earned), 
bit_farm.name as fname, 
bit_regional.name as rname 
from bit_income_expenditure 
inner join bit_farm on bit_income_expenditure.farm_id = bit_farm.id 
inner join bit_regional on bit_income_expenditure.region_id = bit_regional.id
";
$fetch = mysql_query($query);

$row = mysql_fetch_array($fetch);

// and print my output

echo $row[0]; //and so on....

當我執行此代碼時,它顯示以下錯誤:

如果沒有GROUP BY子句,則將GROUP列(MIN(),MAX(),COUNT(),...)與GROUP列混合使用是非法的

我該如何解決這個錯誤?

您的select子句包括:

 bit_farm.name as fname, bit_regional.name as rname 

MySQL默認情況下會接受此設置,但是您的系統必須具有默認設置以符合ANSI。

這取決於您想要什么。 如果要為每個“農場”和“地區”使用不同的值,請添加:

 group by bit_farm.name, bit_regional.name 

如果需要總計,請從select刪除這些列。

如果您使用諸如sum(),avg(),count()之類的任何函數,那么默認情況下它將對所有數據進行求和/計數/平均,但是如果您要基於其進行分類的其他任何列, count / avg,那么您必須在where子句后提及group by,因此您的查詢應為-

select sum(salleryallowance), 
sum(entertainmentexp),
sum(depreciation), 
sum(electricity), 
sum(securitygard),
sum(machinaryrepaire), 
sum(totalrepairing),
sum(othermaintanaice),
sum(postal_charge),
sum(officeexp), 
sum(stationary),
sum(rent_lease_thresher), 
sum(rent_tractor), 
sum(traivlingallowance),
sum(transportaion_cost), 
sum(bank_commition), 
sum(total_exp),
sum(interest_earned), 
bit_farm.name as fname, 
bit_regional.name as rname 
from bit_income_expenditure 
inner join bit_farm on bit_income_expenditure.farm_id = bit_farm.id 
inner join bit_regional on bit_income_expenditure.region_id = bit_regional.id
group by bit_farm.name,bit_regional.name;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM