Wie zugesagt noch die Lösung, die ich mittlerweile komplett auf alle möglichen Berechnungsmöglichkeiten unser kleinen
DB adaptiert habe:
SQL-Code:
DELIMITER $$
DROP PROCEDURE IF EXISTS `calls` $$
CREATE PROCEDURE `calls`(pilot
INT(10), in_startdate DATE, in_enddate DATE)
READS
SQL DATA
BEGIN
/*Typen festlegen und Wert berechnen*/
SELECT datum,
SUM(
CASE WHEN typ_id = 01
THEN wert
ELSE 0
END)
+
SUM(
CASE WHEN typ_id = 02
THEN wert
ELSE 0
END)
-
SUM(
CASE WHEN typ_id = 03
THEN wert
ELSE 0
END)
-
SUM(
CASE WHEN typ_id = 04
THEN wert
ELSE 0
END)
+
SUM(
CASE WHEN typ_id = 05
THEN wert
ELSE 0
END)
-
SUM(
CASE WHEN typ_id = 06
THEN wert
ELSE 0
END)
AS calls
FROM element e
WHERE e.datum
BETWEEN in_startdate
AND in_enddate
AND e.pilot_id = pilot;
GROUP BY datum;
END $$
DELIMITER ;
Vielen Dank noch einmal für die Hilfe!