现统计全年每月计划性和临时性的次数,模拟数据如下:dateplantemp2013-01-05102013-01-06102013-01-07012013-02-05102013-02-06102013-03-06012013-04-07102013-04-08012013-05-0810...
现统计全年每月计划性和临时性的次数,模拟数据如下:
date plan temp
2013-01-05 1 0
2013-01-06 1 0
2013-01-07 0 1
2013-02-05 1 0
2013-02-06 1 0
2013-03-06 0 1
2013-04-07 1 0
2013-04-08 0 1
2013-05-08 1 0
2013-07-09 0 1
2013-07-10 1 0
想输出2013年各月份的情况,语句如下:SELECT SUBSTRING(date, 6, 2) AS mon,COUNT(paln) AS planed,COUNT(temp) AS tempFROM AWHERE SUBSTRING(date, 1, 4)='2013'GROUP BY SUBSTRING(date, 6, 2)输出结果如下:
Mon Plan Temp
01 2 1
02 2 0
03 0 1
04 1 1
05 1 0
07 1 1
未有数据的月份如何也显示出来?期待结果如下:
Mon Plan Temp
01 2 1
02 2 0
03 0 1
04 1 1
05 1 0
06 0 0
07 1 1
08 0 0
09 0 0
10 0 0
11 0 0
12 0 0
SQL语句因为是简化,可能有错误,只是大体的意思。
主要是WHERE...GROUP BY...的语句如何优化?谢谢各位解答
展开