MySQL显示所有月份

时间:2017-03-19 23:16:43

标签: mysql sql

我需要帮助创建一个查询,该查询将显示该月的名称,即使该月没有活动。

我只从一张桌子上获取数据。

| apptID |   apptType      |     Date    |
|----------------------------------------|
| 1      | Implementation  | 2017-03-19  |
| 2      | Meeting         | 2017-03-01  |
| 3      | Meeting         | 2017-04-04  |

等...

我能够创建一个查询,显示约会总数(每种类型,每月),但不会显示没有活动的月份。

这是我的代码:

SELECT DATE_FORMAT(appointment.date, '%M') AS 'Month',
SUM(CASE WHEN description = 'Meeting' THEN 1 ELSE 0 END) AS 'Meeting',
SUM(CASE WHEN description = 'Consultation' THEN 1 ELSE 0 END) AS 'Consultation',
SUM(CASE WHEN description = 'Implementation' THEN 1 ELSE 0 END) AS 'Implementation',
SUM(CASE WHEN description = 'Follow-up' THEN 1 ELSE 0 END) AS 'Follow-up'
FROM appointment GROUP BY MONTH(date)

Result

我想保持相同的格式(记录按个月计算)

谢谢

2 个答案:

答案 0 :(得分:1)

您可以在import matlab.engine eng = matlab.engine.connect_matlab('my_sim123') eng.eval("set_param('scheme123/PID', 'P', '15')",nargout=0) 子句中列出子查询中的月份:

set_param('scheme123', 'SimulationCommand','Start')

注意:

  • 这使用简写来计算值。 MySQL将布尔表达式视为1表示true,0表示false表示。
  • 不要在列别名周围放置单引号。它们只应用于字符串和日期常量。
  • 当你使用几个月时,你应该把这一年考虑在内(虽然我没有对查询进行更改)。
  • 您可以根据需要为子查询添加更多月份。

答案 1 :(得分:0)

我创建了第二个表格,其中只有几个月,然后是left join。很抱歉,答案并不详细 - 在移动设备上写这个,这很痛苦......