2014-10-23 6 views
0
$query = "Select first-second as ss from 
      (
      SELECT sum(mysum) from 
       (
       SELECT pow(sum(ans),2)/count(staff_id) as mysum 
       from answer 
       group by staff_id 
      )as EEx2 
     ) as first from 
      (
        select pow(sum(ans),2)/count(ans) as sumofans 
        from answer 
     ) as second"; 

Ошибка, которую я получаю: у вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с 'from (выберите pow (сумма (ans), 2)/count (ans) как sumofans из ответаMysql Агрегат операции подзапроса

Я придерживался этого в течение нескольких дней. Может ли кто-нибудь помочь

ответ

2

Это ваш запрос:.

Select first-second as ss from 
(
    SELECT sum(mysum) from 
    (
    SELECT pow(sum(ans),2)/count(staff_id) as mysum 
    from answer 
    group by staff_id 
    ) as EEx2 
) as first from 
(
    select pow(sum(ans),2)/count(ans) as sumofans 
    from answer 
) as second 

Это синтаксически неверно один выбор имеет только один пункт from Кроме того, вы не называете столбец в первом запросе я думаю.. вы хотите:

Select (first.mysum - second.sumofans) as ss from 
(
    SELECT sum(mysum) as mysum from 
    (
    SELECT pow(sum(ans),2)/count(staff_id) as mysum 
    from answer 
    group by staff_id 
    ) as EEx2 
) as first cross join 
(
    select pow(sum(ans),2)/count(ans) as sumofans 
    from answer 
) as second 
+0

Да! Большое вам спасибо Гордон Линофф – Sekdahai

0
$query = "Select first-second as ss from 
     (
     SELECT sum(mysum) from 
      (
      SELECT pow(sum(ans),2)/count(staff_id) as mysum 
      from answer 
      group by staff_id 
     )as EEx2 
    ) as first // use inner join , join etc here not from.. 
     (
       select pow(sum(ans),2)/count(ans) as sumofans 
       from answer 
    ) as second"; 

Проблема заключается в том, что вы используете ключ дважды в одном выборе.

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