Puede declarar una variable de tabla (o un parámetro si es parte de un procedimiento o función) y usarla para el not in
parte:
DECLARE @NotIn table (
NotInValues int
)
INSERT INTO @NotIn Values
('00009000'),
('00009900'),
('00009906')
y utilícelo en su código así:
where [Location Code] between '0000' and '0040'
and [Item No_] not IN (select NotInValues from @NotIn)
and Gutschrift = '1'
and [Document Date] between @Start and @Ende
Nota n.º 1: para una gran cantidad de valores, no existe probablemente funcionará mejor que no en
Nota n.º 2: Si es parte de un procedimiento almacenado, deberá crear un tipo de tabla definido por el usuario y usarlo para declarar el parámetro con valor de tabla. Además, los parámetros con valores de tabla son de solo lectura, por lo que realizar declaraciones DML (insertar/actualizar/eliminar) en ellos generará un error.
Para crear la udt:
CREATE TYPE IntegerList As Table
(
IntValue int
)
Para declararlo en la lista de parámetros del procedimiento almacenado:
CREATE PROCEDURE procedureName
(
@IntList dbo.IntegerList READONLY
-- Note that the readonly must be a part of the parameter declaration.
)