我的'订单'表中有以下相关列:
Date_Day
(范围从1到31,没有尾随0)
Date_Month
(是1月到12月的范围,不是数字)
Date_Year
(是4位数格的年份,例如:2005年)
Total
(带小数点后2位的数字)
我知道存储日期的方式非常糟糕,但这是我给出的数据库。我试图找到一些东西,我不确定是否有办法在SQL中进行,而不是在PHP中进行数学运算:
每年每天的总和。
去年这一天的总和 (这一天是这个月的第n个工作日。所以今天,它 将是2012年10月的第一个星期二)
票房收入最高 历史上的一天
MySQL不是我的强项,虽然我可以在PHP中找到它,但我很乐意在MySQL中看到它,所以我可以开始学习它了。
答案 0 :(得分:6)
如果您希望保持数据库结构化,可以使用以下查询:
每年每天的总和:
SELECT Date_Year, Date_Month, Date_Day, SUM(Total)
FROM tablename
GROUP BY Date_Year, Date_Month, Date_Day
去年这一天的总和:
SELECT SUM(Total)
FROM tablename
WHERE
Date_Year = YEAR(CURDATE())-1
AND Date_Month = MONTHNAME(CURDATE())
AND Date_Day = DAY(CURDATE())
历史上收入最高的一天:
SELECT Date_Year, Date_Month, Date_Day, SUM(Total)
FROM tablename
GROUP BY Date_Year, Date_Month, Date_Day
ORDER BY SUM(Total) DESC
LIMIT 1