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
これは動作しますが、複数の行があるので合計が必要です。MySQL SUM関数とCASE文
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
誰かが、助けてくださいもらえますか? 多くの感謝!
英語で質問を書き直してください。 –