MKinzler hat's schon auf den Kopf getroffen glaube ich. Folgendes liefert genau das gesuchte, und ist sogar unerwartet flott dabei:
SQL-Code:
SELECT
h.mDate mDate,
SUM(CASE WHEN (h.mID=21) THEN mMIN ELSE 0 END) L1_min,
SUM(CASE WHEN (h.mID=21) THEN mAVG ELSE 0 END) L1_avg,
SUM(CASE WHEN (h.mID=21) THEN mMAX ELSE 0 END) L1_max,
SUM(CASE WHEN (h.mID=22) THEN mMIN ELSE 0 END) L2_min,
SUM(CASE WHEN (h.mID=22) THEN mAVG ELSE 0 END) L2_avg,
SUM(CASE WHEN (h.mID=22) THEN mMAX ELSE 0 END) L2_max,
SUM(CASE WHEN (h.mID=23) THEN mMIN ELSE 0 END) L3_min,
SUM(CASE WHEN (h.mID=23) THEN mAVG ELSE 0 END) L3_avg,
SUM(CASE WHEN (h.mID=23) THEN mMAX ELSE 0 END) L3_max
FROM
history h
WHERE
(h.mIntervalID = 6) AND
(h.mDate BETWEEN '2015-10-10' AND NOW()) AND
(h.mID IN (21,22,23))
GROUP BY
h.mDate
Die IDs setze ich dann via Parameter aus meinem Programm, das dann auch gleich sicher stellt, dass es sich wirklich um Werte für L1-L3 handelt. Danke euch!!
@jobo: Ja, tun sie. Allerdings ist die Abfrage hier dermaßen schnell unterwegs, dass ich fast glaube dass die "missbrauchte" Aggregation hier kaum zu Buche schlägt.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)