首页 > 解决方案 > Mysql合并今年和去年最后一个季度的总结果?

问题描述

我以前从来没有这样做过,并尝试过在线搜索,但我什至不知道我在寻找什么。我必须显示今年的所有结果,还要将这些结果与去年最后一个季度合并。所以显示今年所有结果的查询是:

SELECT distinct(jurisdiction), total_miles FROM test_a WHERE year = '2021' ORDER BY year DESC, quarter DESC, jurisdiction ASC

并包括上一季度的结果是:

SELECT distinct(jurisdiction), total_miles FROM test_a WHERE year = '2020' AND quarter ='4'

数据库结构是:

quarter
year
jurisdiction
total_miles

一个示例输出是:

Q1 2021 TX 100 miles
Q1 2021 CA 20 miles
Q2 2021 TX 50 miles

Q4 2020 AL 500 miles

合并今年和去年第四季度的结果的查询是什么?即使我的第一个查询也不正确,因为它不会总结当年每个季度的所有里程。

因此,如果今年 TX 管辖区有 100 英里,而去年第 4 季度有 50 英里,那么只会导致 TX 管辖区有 150 英里。它将把每个管辖区的所有里程加起来。谢谢你的时间。

标签: mysqlsqlinner-join

解决方案


2021 年您必须按管辖区分组才能获得该年的总数,其余的应该是 INNER JOIN

SELECT t1.jurisdiction, t1.total_miles + t2.total_miles as totalmile 
FROM
(SELECT jurisdiction, SUM(total_miles) as total_miles FROM test_a WHERE year = '2021' GROUP BY jurisdiction) t1
INNER JOIN (SELECT distinct(jurisdiction), total_miles FROM test_a WHERE year = '2020' AND quarter ='4') t2 ON t1.jurisdiction = t2.jurisdiction
ORDER BY t1.jurisdiction ASC

推荐阅读