Puoi dichiarare una variabile di tabella (o un parametro se fa parte di una procedura o funzione) e usarla per not in
parte:
DECLARE @NotIn table (
NotInValues int
)
INSERT INTO @NotIn Values
('00009000'),
('00009900'),
('00009906')
e usalo nel tuo codice in questo modo:
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: per un numero elevato di valori, non esiste probabilmente funzionerà meglio di non in
Nota n. 2: Se fa parte di una procedura memorizzata, sarà necessario creare un tipo di tabella definito dall'utente e utilizzarlo per dichiarare il parametro con valore di tabella. Inoltre, i parametri con valori di tabella sono di sola lettura, quindi l'esecuzione di istruzioni DML (inserisci/aggiorna/elimina) su di essi genererà un errore.
Per creare l'udt:
CREATE TYPE IntegerList As Table
(
IntValue int
)
Per dichiararlo nell'elenco dei parametri della procedura memorizzata:
CREATE PROCEDURE procedureName
(
@IntList dbo.IntegerList READONLY
-- Note that the readonly must be a part of the parameter declaration.
)