这是我尝试过的SQL查询。
function getall() {
$connection = new Connection;
$connection->open();
$query = "SELECT position.id,position.name_position,position.g_position,position.cs,position.totalbefore,
COUNT(position2.staff_id) AS cnt_staff,
totalbefore-cnt_staff AS totalafter
FROM position
INNER JOIN position2 ON position.id = position2.id_position2
WHERE position.status_data= '1'
GROUP BY position2.id_position2";
$result = mysql_query($query);
return $result;
}
此代码返回语法错误。 Idk在声明中将算术运算(totalbefore-cnt_staff AS totalafter)放在哪里,任何人都可以帮我。
答案 0 :(得分:1)
使用
position.totalbefore - COUNT(position2.staff_id) AS totalafter
您需要再次计算该值
答案 1 :(得分:0)
由于查询中有group by子句,因此必须将聚合函数与算术表达式一起使用,例如
sum(totalbefore-cnt_staff) as totalafter
和totalbefore列相同。
无论如何,尝试将查询放在任何查询编辑器(如SQL查询编辑器)中,错误消息将更加清晰。