SQL SELECT 语句中的算术运算

Arithmetic operation in SQL SELECT statement

这是我试过的 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; 
}

此代码 return 语法错误。 Idk 在 statement.can 中将算术运算(totalbefore-cnt_staff AS totalafter)放在哪里有人帮助我

使用

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

您需要重新计算值

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

sum(totalbefore-cnt_staff) as totalafter

totalbefore 列也是如此。

无论如何,尝试将查询放在任何查询编辑器中,例如(SQL 查询编辑器),错误消息对您来说会更清楚。