我有一个查询来计算从表中选择总和和列值的每列的总和 .
$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列是非法的
我该如何解决这个错误?
2 回答
您的
select
条款包括:默认情况下,MySQL会接受此操作,但您的系统必须具有符合ANSI标准的默认设置 .
这取决于你想要什么 . 如果您想为每个“farm”和“region”设置不同的值,请添加:
如果您想要总计,请从
select
中删除这些列 .如果您使用任何函数,如sum(),avg(),count()...那么默认情况下它将汇总/计算/平均所有数据,但如果您使用任何其他列,您希望根据该列对您的和/ count / avg那么你必须在where子句之后提到group,所以你的查询应该是 -