gpt4 book ai didi

Mysql查询获取表名存储在另一个表中的每个表的总和

转载 作者:太空宇宙 更新时间:2023-11-03 11:31:52 25 4
gpt4 key购买 nike

我有一个存储报告名称的 MySQL 表,对于每个条目,我都有一个表,其中每个主题都有标记。

报告

+------------+----------+
| S.No. |ReportName|
+------------+----------+
| 1 | Report1 |
| 2 | Report2 |
+------------+----------+

报告 1

+------------+----------+
| Subject | Marks |
+------------+----------+
| Maths | 78 |
| English | 99 |
+------------+----------+

报告2

+------------+----------+
| Subject | Marks |
+------------+----------+
| Maths | 80 |
| English | 99 |
+------------+----------+

现在,我想从每个报告中获取分数总和作为表格。我可以为一张 table 做,但不能为所有人做。

对于一个表,它是:

SELECT (SUM(marks)) AS Total FROM `Report1`

预期:

+------------+----------+
| ReportName | Marks |
+------------+----------+
| Report1 | 177 |
| Report2 | 179 |
+------------+----------+

最佳答案

你可以试试

使用UNION合并Report1Report2

SELECT 'Report1' AS ReportName, SUM(Marks) AS Marks
FROM Report1
UNION ALL
SELECT 'Report2' AS ReportName, SUM(Marks) AS Marks
FROM Report2

SQLFiddle

编辑

Rport1Rport2表的数据格式相同。

我建议你可以将表 Report1Report2 合并为 InfoReport

InfoReport 可以通过 ReportIDReports join

+------------+----------+----------+
| Subject | Marks | ReportID |
+------------+----------+----------+
| Maths | 78 | 1 |
| English | 99 | 1 |
| Maths | 80 | 2 |
| English | 99 | 2 |
+------------+----------+----------+

这样的新查询。

SELECT t1.ReportName as 'ReportName',
SUM(T.Marks) as Marks
FROM InfoReport AS T
INNER JOIN Reports as T1 ON T.ReportID = T1.SNO
GROUP BY t1.ReportName

SQLFiddle

关于Mysql查询获取表名存储在另一个表中的每个表的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49168796/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com