我已经在数据库中创建了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替换为要在每个月下显示的列的名称。

10-08 18:03