您好,我正在查看Mysql查询以将计数显示为来自两个表的组
表1 =植物
P_id Plant location Employee
1 DUBAI Employee A
2 SHARJAH Employee A
3 OMAN Employee B
4 DAMMAM Employee C
5 RIYADH Employee C
表2 =访问次数
V_id Visit status Plant location Employee
1 Done DUBAI Employee A
2 Done SHARJAH Employee A
3 Done OMAN Employee B
4 Done RIYADH Employee C
我需要结果
Employee Visit Completed Remaining Visits Result
Employee A 2 0 100 %
Employee B 1 0 100 %
Employee C 1 1 50%
SELECT employee_name,COUNT(v_id)
FROM visit
GROUP BY employee_name;
我使用了上面的代码。它仅显示访问计数。但是如何获得结果表
答案 0 :(得分:1)
有了这句话
SELECT
Employee,
count_plant `Visit Completed`
,(count_plant -count_visits)`Remaining Visits`
, CONCAT(ROUND(((count_visits / count_plant) * 100),1), " %") Result
FROM
(SELECT
p.Employee,
COUNT(p.`Plant location`) count_plant
,COUNT(v.`Plant location`) count_visits
FROM
(SELECT
* FROM plant) p
LEFT join
(SELECT *
FROM visits
WHERE `Visit status` = 'Done' ) v
ON p.Employee = v.Employee
and p.`Plant location` = v.`Plant location`
GROUP BY p.Employee) p_v;
给出结果
Employee Visit Completed Remaining Visits Result
Employee A 2 0 100.0 %
Employee B 1 0 100.0 %
Employee C 2 1 50.0 %
结果列四舍五入到逗号后的i位。 您应该看看是否正是您所需要的。