[英]SQL Query join 2 tables group by month
我有2個表1分別命名為Despesas和其他命名為Receitas,均具有日期和值字段。 我想總結按月和年分組的值。 我已經試過了
SELECT
MONTHNAME(DATA) AS m,
sum(valor) AS p
FROM
despesas
GROUP BY
MONTHNAME(DATA)
但我不知道如何像這樣將兩者都合並到一個表中
----------------------------------------
- MONTH - SUM DESPESAS - SUM RECEITAS -
- JANUARY - 10432.2 - 103.3 -
- MARCH - 102.2 - 0 -
- APRIL - 101.2 - 4 -
----------------------------------------
大概嘗試如下: 分別獲取SUM()
值,然后可以在公共列DATA
上JOIN
兩個表。 請參閱您提供的提琴修改過的http://sqlfiddle.com/#!9/cd9f9/6
SELECT
MONTHNAME(d.DATA) AS Month_Name,
sum(d.valor) AS Despesas_Sum_Valor,
xx.Receitas_Sum_Valor
FROM
despesas d JOIN (
SELECT DATA,
sum(valor) AS Receitas_Sum_Valor
FROM Receitas
GROUP BY MONTHNAME(DATA) ) xx
ON MONTHNAME(d.DATA) = MONTHNAME(xx.DATA)
GROUP BY
MONTHNAME(DATA);
drop table if exists t1;
create table t1 (date date, val int);
insert into t1 values ("2015-01-02", 1), ("2015-01-25", 2), ("2015-02-02", 3);
drop table if exists t2;
create table t2 (date date, val int);
insert into t2 values ("2015-01-15", 1), ("2015-02-10", 2), ("2015-03-01", 3);
select monthname(date), sum(val1) DESPESAS, sum(val2) RECEITAS
from (
select date, val1, val2
from (select date, val val1, 0 val2
from t1) s1
union
(select date m, 0 val1, val val2
from t2 ) ) t
group by month(date)
order by date
結果
monthname(date) DESPESAS RECEITAS
January 3 1
February 3 2
March 0 3
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.