Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
Delphi 10 Seattle Enterprise
|
AW: Verdichtungstabellen für Messwertarchiv erstellen
5. Aug 2015, 22:54
So sieht so ein Statement aus
SQL-Code:
CREATE TABLE mw
(`messID` INT NOT NULL ,
`messAggID` INT NOT NULL,
`messDatum` DATETIME NOT NULL,
`messWertAVG` FLOAT ,
`messWertMAX` FLOAT,
`messWertANZ` INT DEFAULT 1,
PRIMARY KEY (messID, messAggID, messDatum) );
INSERT INTO mw
(`messID`, `messAggID`, `messDatum`, `messWertAVG`, `messWertMAX`)
VALUES
(1,1,'2015-08-08 13:15:00',5,6)
ON DUPLICATE KEY UPDATE
messWertAVG = ( messWertAVG * messWertANZ + 5 ) / ( messWertANZ + 1 ),
messWertMAX = IF( messWertMAX > 6, messWertMAX, 6 ),
messWertANZ = messWertANZ +1
;
INSERT INTO mw
(`messID`, `messAggID`, `messDatum`, `messWertAVG`, `messWertMAX`)
VALUES
(1,1,'2015-08-08 13:15:00',6,7)
ON DUPLICATE KEY UPDATE
messWertAVG = ( messWertAVG * messWertANZ + 6 ) / ( messWertANZ + 1 ),
messWertMAX = IF( messWertMAX > 7, messWertMAX, 7 ),
messWertANZ = messWertANZ +1
;
Eigentlich brauchst du gar keine SP, die Statistik kannst du über ein Statement mit Parametern jagen. Alles in einer Transaktion erledigen und gut ist.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
|
|
Zitat
|