У меня есть этот ВЫБОР:
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 здесь
Но я хочу ВЫБРАТЬ его как финансовый год (финансовый год), начинающийся >= 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
Есть ли способ получить этот результат сверху?
С уважением и с Новым годом ;-)
DATE_ADD
илиDATE_SUB
, чтобы вычесть или добавить 10 месяцев? - person Norbert van Nobelen   schedule 01.01.2016