SELECT
CASE schuleArtID
WHEN 1 THEN SUM(schuleSummeSchueler) / 8
WHEN 2 THEN SUM(schuleSummeSchueler) / 6 * 0.8
WHEN 3 THEN SUM(schuleSummeSchueler) / 6 * 0.8
WHEN 4 THEN SUM(schuleSummeSchueler) / 5 * 0.8
WHEN 5 THEN SUM(schuleSummeSchueler) / 3 * 0.5
WHEN 6 THEN SUM(schuleSummeSchueler) / 3 * 0.8
END AS potenzial
FROM
sys_theorie_schule
WHERE
filialID = '311'
GROUP BY
schuleArtID
Это работает, но теперь мне нужна сумма, потому что есть несколько строк.
SELECT
SUM(
CASE schuleArtID
WHEN 1 THEN SUM(schuleSummeSchueler) / 8
WHEN 2 THEN SUM(schuleSummeSchueler) / 6 * 0.8
WHEN 3 THEN SUM(schuleSummeSchueler) / 6 * 0.8
WHEN 4 THEN SUM(schuleSummeSchueler) / 5 * 0.8
WHEN 5 THEN SUM(schuleSummeSchueler) / 3 * 0.5
WHEN 6 THEN SUM(schuleSummeSchueler) / 3 * 0.8
END
) AS potenzial
FROM
sys_theorie_schule
WHERE
filialID = '311'
GROUP BY
schuleArtID
Здесь я получаю только результат [Err] 1111 - Invalid use of group function
.
Вотструктура таблицы (извините за немецкие названия столбцов):
CREATE TABLE `sys_theorie_schule` (
`schuleID` int(11) NOT NULL AUTO_INCREMENT,
`filialID` int(11) NOT NULL,
`schuleName` varchar(255) NOT NULL,
`schuleStrasse` varchar(255) NOT NULL,
`schulePlz` varchar(8) NOT NULL,
`schuleOrt` varchar(255) NOT NULL,
`schuleArtID` int(11) NOT NULL,
`schuleSummeSchueler` int(11) NOT NULL,
`schuleEntfernung` int(11) NOT NULL,
`online` tinyint(1) NOT NULL DEFAULT '1',
`timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`schuleID`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8
MySQL-версия: 5.0.51a-24 + lenny5
Может кто-нибудь помочь, пожалуйста?Большое спасибо!