SQL SELECT语句中的算术运算

时间:2016-02-11 04:56:40

标签: mysql arithmetic-expressions

这是我尝试过的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)放在哪里,任何人都可以帮我。

2 个答案:

答案 0 :(得分:1)

使用

position.totalbefore - COUNT(position2.staff_id) AS totalafter

您需要再次计算该值

答案 1 :(得分:0)

由于查询中有group by子句,因此必须将聚合函数与算术表达式一起使用,例如

sum(totalbefore-cnt_staff) as totalafter

和totalbefore列相同。

无论如何,尝试将查询放在任何查询编辑器(如SQL查询编辑器)中,错误消息将更加清晰。