Ich versuche, eine Case-Anweisung in der WHERE-Klausel für eine Abfrage, an der ich arbeite, zu schreiben. Ich importiere den Code in Crystal-Reports-Berichten und ich versuche grundsätzlich zu sagen, ob die Variable 'type' auf 'create' gesetzt ist, laufen Sie für diesen Datumsbereich in der where-Klausel, andernfalls für einen anderen Datumsbereich. Es gibt mir einen Fehler. Ich kann hier nicht erkennen, was mit meiner Syntax falsch ist. Helfen Sie jemandem?CASE-Anweisung in Where-Klausel in Tsql-Abfrage
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)
Welchen Fehler bekommen Sie? Und warum hast du 2 Checks für '@ type = 'create''? – Andrew
Aber warum ist gegen Crystal Report markiert, wenn es alle SQL ist – aMazing
Weil ich die Abfrage in Kristall importieren. – Barzul