Rolf b: mysql: Verschachtelte IF/CASE Query läuft nicht

Beitrag lesen

Ist es Absicht, dass deine CASE-Konstrukte für PMAW > 0 und PMAW <= 0 gleich sind?

Abgesehen davon: Lässt es dein fachliches Umfeld zu, aus

SELECT SUM((CASE 
           WHEN (b.PM = 0 AND b.PA = 'Z') THEN 0
           WHEN (b.PM = 0 AND b.PA = 'K') THEN 0
           WHEN b.PM = 0 THEN 1
           ELSE b.PM
           END) * Preis)
FROM ...

das hier zu machen:

SELECT SUM((CASE WHEN b.PM = 0 THEN 1 ELSE b.PM END) * Preis)
FROMWHERE b.PM != 0 OR b.PA NOT IN ('Z', 'K')

Wäre vermutlich effizienter, weil er die irrelevanten Rows dann gar nicht beachtet.

Rolf