Próbuję napisać oświadczenie przypadku w klauzuli where dla kwerendy, nad którym pracuję. Importuję kod w raportach Crystal i zasadniczo próbuję stwierdzić, czy zmienna "type" jest ustawiona na "create" dla tego zakresu dat w klauzuli where, gdzie uruchamiany jest inny zakres dat. Ciągle daje mi błąd. Nie mogę zidentyfikować, co jest nie tak z moją składnią tutaj. Pomóc komuś?CASE oświadczenie gdzie klauzula w tsql zapytanie
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)
Jakiego błędu dostałeś? I dlaczego masz 2 kontrole dla '@ type = 'create''? – Andrew
Ale dlaczego jest zaznaczone w raporcie Crystal, gdy jest to wszystko SQL – aMazing
Ponieważ importuję zapytanie do kryształu. – Barzul