Pit: mysql: Case/When Abfrage liefert unerwartetes Ergebnis

Beitrag lesen

Hallo,

eine Tabelle:

mysql> select * FROM phppos_items_taxes;
+---------+-----------+---------+------------+
| item_id | name      | percent | cumulative |
+---------+-----------+---------+------------+
|       1 | Tax 1     |    8.00 |          0 |
|       1 | Tax 2     |   10.00 |          1 |
|       3 | Sales Tax |    8.00 |          0 |
|       4 | Tax 1     |   20.00 |          0 |
|       4 | Tax 2     |   20.00 |          0 |
+---------+-----------+---------+------------+

liefert zur Query:

SELECT 
    SUM(
        CASE 
           WHEN cumulative = 1 THEN percent
           WHEN cumulative = '' THEN 1000
           ELSE 0 
        END) 
FROM phppos_items_taxes;

das Ergebnis:

4010

Ich hatte 10 erwartet.

Kann mir jemand erklären, warum mysql das hier macht? Zusatz: Die Spalte "cumulative" ist vom Typ int.

Gruß, Pit