从具有相同字段

时间:2018-04-25 11:59:52

标签: mysqli

我有一个网页,计算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(员工ID),名称,总数是所有表的相同字段,我需要获取相同的列,总和(总数)表示前三个月总分的总和 现在我已将我的代码编辑为

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 :(得分:0)

你没有展示你如何使用/定义$ branch - 如果你这样离开它,那么除非你有" $ branch"在您的数据中,您不会看到任何内容。

相关问题