Hallo,
ich würde gerne von euch wissen wie ich folgenden Code so ändern kann, dass ich schneller Ergebnisse bekomme.
Zudem was der Code machen soll. Immer wenn eine Reihe in der Spalte Menge einen Wert hat der "0" ist und der nach Sortierung von Werk, Material und KWYEAR in der davor liegenden Reihe keine Null hat, soll dieser mit einem "X" markiert werden, da ich danach in einer weiteren Abfrage weiter arbeiten möchte. Diese Prozess hier dauert aber sehr lange.
ich würde gerne von euch wissen wie ich folgenden Code so ändern kann, dass ich schneller Ergebnisse bekomme.
Code:
SELECT * FROM (
SELECT CASE WHEN [Menge] = '0' AND LAG([Menge]) OVER (PARTITION BY WERKS, MATNR ORDER BY KWYEAR) > 0
THEN 'x'
WHEN [Menge] > '0' AND LEAD([Menge]) OVER (PARTITION BY WERKS, MATNR ORDER BY KWYEAR) IS NULL
THEN 'x'
ELSE ''
END AS new_KW
FROM B
) A WHERE new_KW = 'x'
Zudem was der Code machen soll. Immer wenn eine Reihe in der Spalte Menge einen Wert hat der "0" ist und der nach Sortierung von Werk, Material und KWYEAR in der davor liegenden Reihe keine Null hat, soll dieser mit einem "X" markiert werden, da ich danach in einer weiteren Abfrage weiter arbeiten möchte. Diese Prozess hier dauert aber sehr lange.