数据透视表与日期类型

时间:2013-09-12 09:35:39

标签: mysql sql date pivot alias

我希望转换Table1中的数据,就像在Pivot_table中的数据的第一张图片上看到的那样。我想计算等级字段中有多少个值。有可能在MySQL中使用日期类型吗?我可以以某种方式使用动态命名的别名,例如你可以看到它低AS NOW()

Table1:
PK        Date                     Subject       Grade
----------------------------------------------------
1         2013-09-11 10:37:45      History         A
2         2013-09-11 10:37:45      Math            B
3         2013-09-11 10:37:45      Math            A    
4         2013-09-11 10:37:45      Biology         D
5         2013-10-11 10:37:45      History         B
6         2013-10-11 10:37:45      History         A
7         2013-10-11 10:37:45      Math            A
8         2013-10-11 10:37:45      Geography       C
9         2013-10-11 10:37:45      Geography       A
10        2013-10-11 10:37:45      Geography       C


Pivot_table:
Subject     11-09-2013     11-10-2013
--------------------------------------
Math        2                 1
History     1                 2
Biology     1
Geography                     3


I tried something like this:

SELECT subject,
       COUNT(CASE WHEN date = CURRENT_DATE() THEN grade END) AS NOW(),
       COUNT(CASE WHEN date = DATE_ADD(NOW(), INTERVAL -1 DAY) THEN grade END) AS '11-09-2013',
       COUNT(CASE WHEN date = DATE_ADD(NOW(), INTERVAL -1 MONTH) AS '11-10-2013' 
FROM table1 
GROUP BY subject

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

我不认为动态别名是可能的。您可以在应用中生成别名。