2016-02-11 5 views
0

вот запрос sql, который я пробовал.Арифметическая операция в операторе SQL SELECT

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; 
} 

Этот синтаксический код возврата кода. ИДК, где поставить арифметическую операцию (totalbefore-cnt_staff AS totalafter) в statement.can кто поможет мне пожалуйста

+0

Проверьте имя столбца, как этот «totalbefore-cnt_staff». Это может быть totalbefore_cnt_staff –

ответ

1

Используйте

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

Вам необходимо вычислить значение снова

+0

спасибо! работает – puyen

0

Поскольку у вас есть группа пункта в запросе, вы должны использовать агрегатную функцию с арифметическим выражением, такими как

sum(totalbefore-cnt_staff) as totalafter 

и тем же для столбца totalbefore.

В любом случае попробуйте поместить запрос в любой редактор запросов, такой как (редактор SQL-запросов), и сообщения об ошибках станут более понятными для вас.

Смежные вопросы