【发布时间】:2018-10-05 21:39:02
【问题描述】:
我有一个网页在 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(employee id), name, total 是所有表的相同字段,我需要获取相同的列,而 sum(total) 表示前三个月总分的总和 现在我已将代码编辑为
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 中执行此代码时,它显示“当前选择不包含唯一列。网格编辑、复选框、编辑、复制和删除功能不可用。”我担心这个警告会影响我在网页中的代码执行 谁能帮帮我
【问题讨论】:
-
该警报仅表示您没有唯一的列-它不会影响您的代码执行,只会尝试在 phpMyAdmin 中进行编辑等-即,正如文本所述(您应该看看如果它与你有关)。所以,您已经更改了代码,现在您说“我的页面工作正常”——这是否意味着您不需要更多帮助?
-
有了那个代码不影响代码执行,那就没有问题了。感谢您的帮助
标签: mysqli