Mysql 使用带差异的Union列组合2个查询
我有两个问题。我需要把它结合起来才能得到实际的结果。 以下是问题1:Mysql 使用带差异的Union列组合2个查询,mysql,Mysql,我有两个问题。我需要把它结合起来才能得到实际的结果。 以下是问题1: SELECT a.city as c1, sum(c.gps_exam1) as c2, sum(c.gps_exam2) as c3, sum(c.avg_exam1) as c4, sum(c.avg_exam2) as c5, count(c.gps_exam1) as c6, count(c.gps_exam2) as c7, count(c.avg_exam2) as c8, count(c.avg_e
SELECT a.city as c1,
sum(c.gps_exam1) as c2,
sum(c.gps_exam2) as c3,
sum(c.avg_exam1) as c4,
sum(c.avg_exam2) as c5,
count(c.gps_exam1) as c6,
count(c.gps_exam2) as c7,
count(c.avg_exam2) as c8,
count(c.avg_exam2) as c9,
from report_sekolah a
join report_stu b
on a.uid=b.uid
join report_exam c
on b.uid=c.uid
group by a.city
以下是问题2:
SELECT sum(b.stu_bil) as c10
from report_sekolah a
join report_stu b
on a.uid=b.uid
group by a.city
我需要把它结合起来才能得到实际的结果。我所做的就是利用工会。以下是查询:
SELECT a.city as c1,
sum(c.gps_exam1) as c2,
sum(c.gps_exam2) as c3,
sum(c.avg_exam1) as c4,
sum(c.avg_exam2) as c5,
count(c.gps_exam1) as c6,
count(c.gps_exam2) as c7,
count(c.avg_exam2) as c8,
count(c.avg_exam2) as c9,
null as c10
from report_sekolah a
join report_stu b
on a.uid=b.uid
join report_exam c
on b.uid=c.uid
group by a.city
UNION ALL
SELECT null as c1,
null as c2,
null as c3,
null as c4,
null as c5,
null as c6,
null as c7,
null as c8,
null as c9,
sum(b.stu_bil) as c10
from report_sekolah a
join report_stu b
on a.uid=b.uid
group by a.city
但它给出了错误的行结果。然后我尝试使用下面的查询,但对所有学生的结果都是错误的
SELECT a.city as c1,
sum(c.gps_exam1) as c2,
sum(c.gps_exam2) as c3,
sum(c.avg_exam1) as c4,
sum(c.avg_exam2) as c5,
count(c.gps_exam1) as c6,
count(c.gps_exam2) as c7,
count(c.avg_exam2) as c8,
count(c.avg_exam2) as c9,
sum(b.stu_bil) as c10
from report_sekolah a
join report_stu b
on a.uid=b.uid
join report_exam c
on b.uid=c.uid
group by a.city
尝试下面的查询,这对您很有帮助 我必须更改一个字段(c10)值来设置子查询
SELECT a.city as c1,
sum(c.gps_exam1) as c2,
sum(c.gps_exam2) as c3,
sum(c.avg_exam1) as c4,
sum(c.avg_exam2) as c5,
count(c.gps_exam1) as c6,
count(c.gps_exam2) as c7,
count(c.avg_exam2) as c8,
count(c.avg_exam2) as c9,
(SELECT sum(stu_bil) From report_stu Where a.uid=uid) as c10
from report_sekolah a
join report_stu b
on a.uid=b.uid
join report_exam c
on b.uid=c.uid
group by a.city
谢谢你回答我的问题 我已经得到了答案。以下是正确的查询:
SELECT y.c1, y.c2, y.c3, y.c4, y.c5, y.c6, y.c7, y.c8, y.c9 , z.result
FROM
(
SELECT a.city as c1,
sum(c.gps_exam1) as c2,
sum(c.gps_exam2) as c3,
sum(c.avg_exam1) as c4,
sum(c.avg_exam2) as c5,
count(c.gps_exam1) as c6,
count(c.gps_exam2) as c7,
count(c.avg_exam2) as c8,
count(c.avg_exam2) as c9,
a.uid
from report_sekolah a
join report_stu b
on a.uid=b.uid
join report_exam c
on b.uid=c.uid GROUP BY a.city
) y
INNER JOIN
(
SELECT sum(b.stu_bil) as result,
b.uid
from report_sekolah a join report_stu b on a.uid=b.uid group by a.city
) z
ON y.uid = z.uid
第一行是正确的。下一排错了。谢谢你的回答