Как составить таблицу расчетов из 2 таблиц - PullRequest
0 голосов
/ 25 февраля 2020

У меня есть 2 таблицы, и я хочу создать таблицу процентов.

select a.claim_by,
count(select count (claim_by) from itcorp_first_response a) + (select count (claim_by) from itcorp_reopen_response b) as total_response,
count(select count (response_time > minute (response_time -30)) from itcorp_first_response a) + (select count (response_time > minute (response_time -30)) from itcorp_reopen_response b) as total_target,
count(select count (response_time > minute (response_time +30)) from itcorp_first_response a) + (select count (response_time > minute (response_time +30)) from itcorp_reopen_response b) as total_untarget
from itcorp_first_response a, itcorp_reopen_response b
where a.claim_by in ('Petrus Asbirianto','Ifnu Muhardhi','Riko Rachmat Saleh','Muhammad Irsan','Dion Laksmana') 
and a.claim_by = b.claim_by
GROUP BY a.claim_by;

, но получаю ошибку ниже:

Ошибка QL [1064] [42000]: (conn = 78589) У вас ошибка в вашем синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MariaDB, на предмет правильного синтаксиса, который можно использовать рядом с 'select count (demand_by) из itcorp_first_response a) + (select count (demand_by)' в строке 2

1 Ответ

0 голосов
/ 03 марта 2020
count(select count (claim_by) from itcorp_first_response a) +
     (select count (claim_by) from itcorp_reopen_response b)
   as total_response,

->

( SELECT COUNT(*) FROM a ) +
( SELECT COUNT(*) FROM a ) as total_response

Это должно избежать ошибки 1064.)

Не считать количество.

Вместо этого используйте COUNT(*) COUNT(x), если вам не нужно проверять x на NULL.

(response_time > minute (response_time -30))

Что такое тип данных? (Задавая вопросы здесь, укажите SHOW CREATE TABLE.) Если это DATETIME или TIMESTAMP, произнесите что-то вроде

( response_time > NOW() - 30 MINUTE )

Затем поймите, что COUNT() проверяет наличие строк; это не соответствует истине, но SUM:

SELECT  count (response_time > minute (response_time -30))
            from  itcorp_reopen_response b

->

SELECT  SUM(response_time > NOW() - 30 MINUTE)
            from  itcorp_reopen_response b

Пожалуйста, не используйте псевдонимы повторно (a, b); это сбивает с толку читателя.

Сделайте эти исправления и покажите нам, что у вас есть; там может быть что-то еще, чтобы «исправить».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...