получить значения из другой таблицы с одинаковыми полями - PullRequest
0 голосов
/ 25 апреля 2018

У меня есть веб-страница, которая рассчитывает общую оценку 3 месяца после 3 месяцев.Но оценки находятся в разных областях.Поэтому мне нужно получить значения из разных таблиц, имеющих одно и то же поле.Я использовал следующий запрос.Может кто-нибудь исправить этот запрос, потому что с этим запросом он загружает значение целых месяцев, а не 3-месячное значение.Но когда я выбираю из одной таблицы, она загружается правильно

select empid,name,total1 from ((select *,sum(total)as total1 
from formresult5 GROUP by empid) UNION (SELECT *,sum(total)as total1 
FROM formresult4 GROUP by empid) UNION (SELECT *,sum(total)as total1 
FROM formresult3 GROUP by empid) UNION (SELECT *,sum(total)as total1 
FROM formresult2 GROUP by empid) UNION (select *,sum(total)as total1 
FROM formresult GROUP by empid)) result 
WHERE date BETWEEN DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 3 MONTH), '%Y-%m-01') 
    AND LAST_DAY(DATE_SUB(CURDATE(), INTERVAL 1 MONTH)) 
    AND branch='$branch' ORDER by total1 desc

У меня есть 6 таблиц для хранения результатов оценки 6 категорийных сотрудников.там empid (идентификатор сотрудника), имя, сумма - это одно и то же поле для всей таблицы, и мне нужно выбрать те же столбцы, а сумма (общая) означает сумму общей суммы за предыдущие три месяца. Теперь я изменил свой код на

select empid,name,total1 from ((select *,sum(total)as total1 from formresult6 WHERE date BETWEEN DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 3 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(CURDATE(), INTERVAL 1 MONTH)) GROUP by empid) 
UNION 
(select *,sum(total)as total1 from formresult5 WHERE date BETWEEN DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 3 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(CURDATE(), INTERVAL 1 MONTH)) GROUP by empid) 
UNION 
(SELECT *,sum(total)as total1 FROM formresult4 WHERE date BETWEEN DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 3 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(CURDATE(), INTERVAL 1 MONTH)) GROUP by empid)
 UNION 
(SELECT *,sum(total)as total1 FROM formresult3 WHERE date BETWEEN DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 3 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(CURDATE(), INTERVAL 1 MONTH)) GROUP by empid) 
UNION 
(SELECT *,sum(total)as total1 FROM formresult2 WHERE date BETWEEN DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 3 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(CURDATE(), INTERVAL 1 MONTH)) GROUP by empid) 
UNION 
(select *,sum(total)as total1 from formresult WHERE date BETWEEN DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 3 MONTH), '%Y-%m-01') AND LAST_DAY(DATE_SUB(CURDATE(), INTERVAL 1 MONTH)) GROUP by empid)) result 
where branch='$branch' 
ORDER by total1 desc

В этом коде моя страница работала правильно, при выполнении этого кода в phpmyadmin отображается «Текущий выбор не содержит уникального столбца. Функции редактирования сетки, флажки, Редактировать, Копировать и Удалить недоступны».Я беспокоюсь, что это предупреждение повлияет на выполнение моего кода на моей веб-странице. Может ли кто-нибудь помочь мне

1 Ответ

0 голосов
/ 25 апреля 2018

Вы не показали, как вы используете / определяете $ branch - если вы оставите его таким, тогда, если у вас нет «$ branch» в ваших данных, вы ничего не увидите.

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