【发布时间】:2020-06-23 06:13:50
【问题描述】:
我有两个表需要加入并需要获取可用于绘图的数据。
两个表的样本数据是:
**table1**
month planned_hours
2019-10-01 24
2020-01-01 67
2019-02-01 12
**table2**
date hrs_consumed
2019-12-07 7
2019-09-09 3
2019-10-12 4
2019-02-01 5
2019-10-11 4
我尝试了以下查询:
SELECT
a.date as month1,
a.hrs as planned_hours,
a.mon_hrs as actual_hours
FROM (
SELECT
sum(t1.hrs_consumed) as hrs,
t1.date,
t2.mon_hrs
FROM booking t1
LEFT JOIN monthly_plan t2
ON month(t1.date) = month(t2.mon)
UNION
SELECT
t2.mon_hrs,
t2.mon as date,
sum(t1.hrs_consumed) as hrs
FROM booking t1
RIGHT JOIN monthly_plan t2
ON month(t1.date) = month(t2.mon)) a
我从查询中得到以下输出:
month1 planned_hrs actual_hrs
2019-10-01 24 8
2019-10-01 24 8
我想得到的输出是:
month1 planned_hrs actual_hrs
10-2019 24 8
12-2019 0 7
08-2019 0 3
01-2020 67 0
02-2019 12 5
【问题讨论】:
-
你的日期不是mysql能识别的形式(即yyyy-mm-dd)我建议你在使用月份函数之前使用str_to_date函数。