mySQL - 根据用户选择每年显示数据

时间:2016-09-08 16:45:22

标签: mysql

我目前的困境是如何使用我当前的项目来完成这些工作。

我在数据库中有这个表:

Showing data for amount and the date it was entered.

现在我想弄清楚如何在mysql中执行此操作。

  • 用户将从下拉列表或组合框中选择年份
  • 选择一年后,表格会将所有月份显示为每月相应金额的列

2016年是选定年份的示例输出。

enter image description here

感谢您的帮助和专业知识。我只是不到一年的经验,只是mySQL中的新手。

也许你可以给我一些技巧和方法如何做到这一点。提前谢谢!

1 个答案:

答案 0 :(得分:1)

一个简单的草图就是在聚合中使用case语句。 在计算月份的第一天和最后一天+ where子句时,有一个性能改进的空间,但这应该可以让你开始:

select
  sum(case when savings_date between date_format(savings_date, '%Y-01-01') and last_day(date_format(savings_date, '%Y-01-01')) then amount end) as `jan`,
  . . .
  sum(case when savings_date between date_format(savings_date, '%Y-12-01') and last_day(date_format(savings_date, '%Y-12-01')) then amount end) as `dec`
from 
  yourtable
where year(savings_date) = '2016'

我正在为读者计算total金额作为练习。

SQL小提示示例:here