so, ich bin jetzt endlich dazu gekommen, weiter zu arbeiten.
Ich fasse noch einmal zusammen:
Das Statement für die Berechnung lautet bisher:
SQL-Code:
select e.datum, e.intervall, sum(e.wert) +
( select sum(f.wert)
from element f
where f.typ_id = 18
AND f.datum = '2010-01-26'
AND f.pilot_id = 55
AND f.datum = e.datum
AND f.intervall = e.intervall
) ergebnis
from element e
where e.typ_id =18
AND e.pilot_id =55
AND e.datum = '2010-01-26'
group by e.datum, e.intervall
ich habe hierfür einen stored procedure angelegt, und deren die parameter jetzt so eingerichtet, dass die pilot_id abhängig von dem parameter "in_bereich" aus einer weiteren tabelle "config" ausgelesen wird. die parameterübergabe habe ich mit einem einfachen select bereits erfolgreich getestet:
SQL-Code:
DELIMITER $$
DROP PROCEDURE IF EXISTS `sl7030` $$
CREATE PROCEDURE `sl7030`(in_bereich
VARCHAR(45), in_startdate DATE, in_enddate DATE)
READS
SQL DATA
BEGIN
DECLARE used_pilots
VARCHAR(45);
SELECT pilots
INTO used_pilots
FROM config c
WHERE c.bereich=in_bereich;
SELECT e.datum, e.intervall, e.wert, e.pilot_id
FROM element e
WHERE e.typ_id =18
AND e.pilot_id
IN (used_pilots)
AND e.datum
BETWEEN in_startdate
AND in_enddate;
END $$
DELIMITER ;
soweit ist auch alles einwandfrei, nur stellt sich mir jetzt die frage, wie ich die verschiedenen tabellen zur berechnung heranziehe, da das erste statement ja nur die spalte "wert" aus beiden tabellen addiert.
Wie würde ich jedoch umsetzen, dass sum(wert) von tabelle#1 + sum(wert) von tabelle#2 / sum(wert) von tabelle#3 usw. berechnet wird?
kann ich diese einfach als "ergebnis#1", "ergebnis#2" usw. deklarieren und nachher meine berechnung durchführen?