在我的项目中,正在为客户订单的收入/销售额生成月度报告。
这是有关我当前的报告生成方式工作方式的sql小提琴。
每月报表sqlfiddle:http://sqlfiddle.com/#!9/2ca03a/7
查询月度报告:
SELECT SUM(price) as `Ordered total $`, date_created,
DATE_FORMAT(date_created, '%X - %b') as `Month`, COUNT(*) as `Total Orders`
FROM orders WHERE class_id IN (1,2)
GROUP BY DATE_FORMAT(date_created, '%X-%m');
现在,我需要对其进行修改以按季度而不是按月生成报告。
我发现我可以使用mysql
quarter()
函数。我试过使用它,但是没有按预期工作。这是我尝试过的季度sqlfiddle的内容:http://sqlfiddle.com/#!9/2ca03a/6
查询我尝试过的季度报告:
SELECT SUM(price) as `Ordered total $`, date_created,
quarter(date_created) as `Quarter`,
COUNT(*) as `Total Orders`
FROM orders WHERE class_id IN (1,2)
GROUP BY
quarter(date_created);
如您在我的第二个sqlfiddle中所见,mysql
quarter()
函数没有获得所有年份的季度记录。有什么方法可以修改
DATE_FORMAT()
功能以获取季度报告?或如何使用mysql的quarter()
功能? 最佳答案
您可以使用YEAR()
函数获取从日期开始的年份,然后使用CONCAT
到季度获取的年份/季度值,可以将其分组:
SELECT SUM(price) as `Ordered total $`, date_created,
CONCAT(YEAR(date_created), ' - ', QUARTER(date_created)) as `Quarter`,
COUNT(*) as `Total Orders`
FROM orders WHERE class_id IN (1,2)
GROUP BY `Quarter`
Updated SQLFiddle
关于mysql - mysql:使用通过DATE_FORMAT或Quarter()函数在季度报告中创建的日期进行分组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55565638/