MySQL - select 作为财政年度
MySQL - select as fiscal year
我有这个 SELECT:
SELECT
m.`maschine-name` AS byMaschine,
q.`mname` AS byMName,
SUM(YEAR(q.`created`) = YEAR(CURDATE())) AS total
FROM qualitaet q INNER JOIN
maschinen m
ON m.maschine = q.maschine
WHERE
q.`status`='1'
GROUP BY
q.maschine, q.mname;
获取当年的所有结果,如下所示:
| maschine-name | mname | total |
| TYP 1 | 0 | 4 |
| TYP 2 | 3 | 4 |
| TYP 2 | 4 | 4 |
| TYP 3 | 0 | 4 |
| TYP 4 | 0 | 4 |
参见 SQL Fiddle here
但我想SELECT它作为财政年度(financial year)开始于 >= Oct, 1 得到这个结果:
| maschine-name | mname | total |
| TYP 1 | 0 | 3 |
| TYP 2 | 3 | 2 |
| TYP 2 | 4 | 0 |
| TYP 3 | 0 | 2 |
| TYP 4 | 0 | 2 |
我有不同的日期报表,它们都有效,但财政年度让我抓狂:-(
显示今天的数据:
SUM(DATE(created) = CURDATE()) AS total
显示当前周的数据:
SUM(YEARWEEK(q.`created`, 1) = YEARWEEK(CURRENT_DATE, 1)) AS total
显示当前月份的数据:
SUM(q.`created` >= CURDATE() - INTERVAL DAY(CURDATE())-1 DAY) AS total
显示当前年份的数据:
SUM(YEAR(q.`created`) = YEAR(CURDATE())) AS total
有没有办法从上面得到这个结果?
致以最诚挚的问候,新年快乐 ;-)
我是用 MAKEDATE 做的。开始日期是 1 月 1 日
SUM(q.`created` >= MAKEDATE(year(now()-interval 1 year),1) + interval 9 month) AS total
参见 SQLFiddle here
完成SELECT:
SELECT
m.`maschine-name` AS byMaschine,
q.`mname` AS byMName,
SUM(q.`created` >= MAKEDATE(year(now()-interval 1 year),1) + interval 9 month) AS total
FROM qualitaet q INNER JOIN
maschinen m
ON m.maschine = q.maschine
WHERE
q.`status`='1'
GROUP BY
q.maschine, q.mname;
现在我收到了这个结果:
| maschine-name | mname | total |
| TYP 1 | 0 | 3 |
| TYP 2 | 3 | 2 |
| TYP 2 | 4 | 0 |
| TYP 3 | 0 | 2 |
| TYP 4 | 0 | 2 |
我有这个 SELECT:
SELECT
m.`maschine-name` AS byMaschine,
q.`mname` AS byMName,
SUM(YEAR(q.`created`) = YEAR(CURDATE())) AS total
FROM qualitaet q INNER JOIN
maschinen m
ON m.maschine = q.maschine
WHERE
q.`status`='1'
GROUP BY
q.maschine, q.mname;
获取当年的所有结果,如下所示:
| maschine-name | mname | total |
| TYP 1 | 0 | 4 |
| TYP 2 | 3 | 4 |
| TYP 2 | 4 | 4 |
| TYP 3 | 0 | 4 |
| TYP 4 | 0 | 4 |
参见 SQL Fiddle here
但我想SELECT它作为财政年度(financial year)开始于 >= Oct, 1 得到这个结果:
| maschine-name | mname | total |
| TYP 1 | 0 | 3 |
| TYP 2 | 3 | 2 |
| TYP 2 | 4 | 0 |
| TYP 3 | 0 | 2 |
| TYP 4 | 0 | 2 |
我有不同的日期报表,它们都有效,但财政年度让我抓狂:-(
显示今天的数据:
SUM(DATE(created) = CURDATE()) AS total
显示当前周的数据:
SUM(YEARWEEK(q.`created`, 1) = YEARWEEK(CURRENT_DATE, 1)) AS total
显示当前月份的数据:
SUM(q.`created` >= CURDATE() - INTERVAL DAY(CURDATE())-1 DAY) AS total
显示当前年份的数据:
SUM(YEAR(q.`created`) = YEAR(CURDATE())) AS total
有没有办法从上面得到这个结果?
致以最诚挚的问候,新年快乐 ;-)
我是用 MAKEDATE 做的。开始日期是 1 月 1 日
SUM(q.`created` >= MAKEDATE(year(now()-interval 1 year),1) + interval 9 month) AS total
参见 SQLFiddle here
完成SELECT:
SELECT
m.`maschine-name` AS byMaschine,
q.`mname` AS byMName,
SUM(q.`created` >= MAKEDATE(year(now()-interval 1 year),1) + interval 9 month) AS total
FROM qualitaet q INNER JOIN
maschinen m
ON m.maschine = q.maschine
WHERE
q.`status`='1'
GROUP BY
q.maschine, q.mname;
现在我收到了这个结果:
| maschine-name | mname | total |
| TYP 1 | 0 | 3 |
| TYP 2 | 3 | 2 |
| TYP 2 | 4 | 0 |
| TYP 3 | 0 | 2 |
| TYP 4 | 0 | 2 |