Sto provando a scrivere un'istruzione case nella clausola where per una query su cui sto lavorando. Sto importando il codice nei report Crystal e sto essenzialmente cercando di dire se la variabile 'type' è impostata su 'create' run per questo intervallo di date nella clausola where altrimenti eseguita per un intervallo di date differente. Continua a darmi un errore. Non riesco a capire cosa c'è di sbagliato nella mia sintassi qui. Aiuta qualcuno?Istruzione CASE in where clausola nella query tsql
DECLARE @Date1 DATETIME
DECLARE @Date2 DATETIME
DECLARE @type VARCHAR(20)
SET @Date1 = '2010-1-1'
SET @Date2 = '2010-2-1'
SET @type = '{?DateType}'
select *
from filled
WHERE
(CASE WHEN @type = 'create' THEN
filled.CREATEDON >= @Date1
AND filled.CREATEDON < DATEADD(d, +1, @Date2)
WHEN @type <> 'create' THEN
filled.datefilled >= @Date1
AND filled.datefilled < DATEADD(d, +1, @Date2)
END)
Che errore ottieni? E perché hai 2 controlli per '@ type = 'create''? – Andrew
Ma allora perché è contrassegnato contro Crystal Report quando è tutto SQL – aMazing
Perché sto importando la query in cristallo. – Barzul