【发布时间】:2015-09-15 12:16:36
【问题描述】:
我有一个查询要从选择总和和列值的表中计算每列的总和。
$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 列的 GROUP 列 (MIN(),MAX(),COUNT(),...) 是非法的
我该如何解决这个错误?
【问题讨论】:
-
这是您的查询错误。如果您需要帮助,请发布完整的查询。
-
这是我的实际查询......@AdrianBR
-
您的查询是非标准 sql,它是 sql 标准的非法分组,因为非聚合列与聚合且没有分组依据混合在一起。您要么需要 max() 它们以选择特定值,要么按它们分组。我指的列是 bit_farm.name 作为 fname,bit_regional.name 作为 rname
-
谢谢它正在工作