Получение «ORA-00979: не выражение GROUP BY» в приложении PHP - PullRequest
0 голосов
/ 24 марта 2020

Я тестирую с mysql, это работает, но когда я использовал Oracle, появляется эта ошибка:

ORA-00979: не выражение GROUP BY

Вот мой код:


    <?php
$sqlSelect = "SELECT * FROM policy order by policyprogress_id asc";
if (isset($_GET['batch']) && !empty($_GET['batch'])) {
  $batch = $_GET['batch'];
  $sqlSelect = "SELECT * FROM policy where batch = '".$batch."' group by type order by policyprogress_id asc";
  if (isset($_GET['type']) && !empty($_GET['type'])) {
    $type = $_GET['type'];
    $sqlSelect = "SELECT * FROM policy where batch = '".$batch."' and type = '".$type."' order by policyprogress_id asc";
  }
}

1 Ответ

1 голос
/ 24 марта 2020

Всего у вас 3 запроса

-- 1
SELECT * FROM policy order by policyprogress_id asc ;

-- 2
SELECT * FROM policy where batch = '".$batch."' 
group by type order by policyprogress_id asc;

 -- 3
SELECT * FROM policy where batch = '".$batch."' and type = '".$type."' 
order by policyprogress_id asc;

Ваш второй запрос выдаст ошибку, поскольку вы делаете SELECT *, но также используете GROUP BY TYPE.

В запросах GROUP BY предложение SELECT может включать только сгруппированные столбцы и агрегатные функции. Если вы попытаетесь использовать столбцы, отличные от сгруппированных, в предложении SELECT, то Oracle выдаст ошибку ORA-00979: not a GROUP BY expression.

...