Tim P Wrote:
-------------------------------------------------------
> Noch ein Beispiel:
> Ein select betrag,schalter1,schalter2,schalter3
> from tabelle liefert zum Beispiel: betrag
> schalter1 schalter2 schalter3
> 10.50 an an aus
> wenn schalter 1 an, dann zum betrag 5.00 addieren,
> wenn schalter2 an dann 4.60 zum betrag addiern,
> wenn schalter3 an 16.00 zum betrag addieren
> In diesem Fall sollte das der Wert von Betrag
> hinterher 20.60 ergeben.
> Nun verständlich?
Nicht wirklich, wie Du auf 20.60 kommst, kann ich nicht nachvollziehen. Mit meiner Lösung mache ich keine UPDATE's, sondern zähle nur die Einzelwerte der Messungen (Schalter) zusammen. Das es bei mir pro Datensatz nur einen Schalter gibt ist kein Fehler, sondern Absicht (siehe Normalisierung).
Mein Vorschlag von Gestern nochmal etwas erweitert:
Es gibt also mehrere Schalter die in einer Messung (z.B. Messung_id = 1) abgefragt werden. Ist ein Schalter an, existiert ein Wert und die Daten werden gespeichert. Ist ein Schalter aus, existieren kein Wert und nichts wird gespeichert. Im folgenden Beispiel werden in der Messung 1 drei Werte gemessen.
CREATE TABLE messwert_pro_messung_und_schalter (
id INT NOT NULL,
messung_id INT NOT NULL,
schalter_id INT NOT NULL,
betrag DEC(6,2),
PRIMARY KEY (id)
);
INSERT INTO messwert_pro_messung_und_schalter
(id, messung_id, schalter_id, betrag) VALUES
( 1, 1, 1, 5.0),
( 2, 1, 2, 4.60),
( 3, 1, 3, 16.0);
Die Summen aller Schalter pro Messung ergeben sich so:
SELECT SUM(betrag)
FROM messwert_pro_messung_und_schalter
WHERE messung_id = 1;
+-------------+
| SUM(betrag) |
+-------------+
| 25.60 |
+-------------+
1 row in set (0.02 sec)
Grüße
Thomas