我已经在数据库中创建了6个月的数据,它的列名是productiondate。我已经为这个ProductionDate列提供了6个月的日期。现在我需要从这个ProductionDate列中检索Monthwise数据的数据。
我需要以以下方式展示
一月,二月,三月…十二月,分栏
最佳答案
您没有提供关于当前表结构或现有查询的任何细节,但听起来好像是在尝试将数据从行插入到列中。
mysql没有pivot函数,因此需要使用带CASE
表达式的聚合函数来复制它。您的代码类似于:
select otherColumns,
max(case when month(productiondate)=1 then value end) Jan,
max(case when month(productiondate)=2 then value end) Feb,
max(case when month(productiondate)=3 then value end) Mar,
max(case when month(productiondate)=4 then value end) Apr,
max(case when month(productiondate)=5 then value end) May,
max(case when month(productiondate)=6 then value end) Jun,
....
from yourtable
group by otherColumns
然后将
otherColumns
替换为要包含在最终结果中的任何其他列。然后,这些列将包含在GROUP BY
中。此外,还可以将value
替换为要在每个月下显示的列的名称。