MySQL - Abfrage mit gruppierten Bedingungen
Hallo,
Ich habe Tabelle mit Zeilen wie das Bild oben, und ich möchte Menge aller Zeilen summieren, aber ich brauche Zeile, in AISLE = POS auszuschließen und QTY < 0 in der gleichen Zeile.
Ich habe einige versuchen zu bekommen, was ich will, aber ich kann nicht Lösung finden:
SELECT
ROUND(SUM(QTY),
2) AS INVENTORY
FROM
INV_QTY_LOCATION
WHERE
PRODUCT = 143459 AND AISLE != 'PHY' AND AISLE != 'RET' AND case when AISLE = 'POS' AND QTY > 0
Ein weiterer Versuch
SELECT
ROUND(SUM(QTY),
2) AS INVENTORY
FROM
INV_QTY_LOCATION
WHERE
PRODUCT = 143459 AND AISLE != 'PHY' AND AISLE != 'RET' AND (AISLE = 'POS' AND QTY > 0)
In diesem speziellen Fall sollte das Ergebnis sein 161.
Lösung
SELECT
ROUND(
SUM(
CASE WHEN(AISLE = 'POS' AND QTY > 0) OR AISLE != 'POS' THEN QTY ELSE 0
END
),
2
) AS INVENTORY
FROM
INV_QTY_LOCATION
WHERE
PRODUCT = 143459 AND AISLE != 'PHY' AND AISLE != 'RET'
Was passiert, wenn Sie laufen Ihren Code? –