Мне нужно изменить хранимую процедуру, и я не могу понять, как день манипулирует этими датами в предложении WHERE. Особенно, когда END = 1. Я никогда этого не видел.Может кто-нибудь помочь мне перевести инструкцию CASE с датами?
CASE WHEN @DateFrom IS NULL THEN 1 ELSE
CASE WHEN INV.InvoiceDate > INV.EffectiveDate THEN
CASE WHEN dateDiff(d, @DateFrom, INV.InvoiceDate) >= 0
AND dateDiff(d, @DateTo, INV.InvoiceDate) <= 0 Then 1 else 0 end
ELSE
CASE WHEN dateDiff(d, @DateFrom, INV.EffectiveDate) >= 0
AND dateDiff(d, @DateTo, INV.EffectiveDate) <= 0 Then 1 else 0 end
END
END = 1
Это просто ряд условий, которые дают свой 'CASE' отсутствует * выражение * значение 1 или 0. После того, как все это, весь' СЛУЧАЙ, КОГДА. .... END' возвращает 0 или 1, а затем вы говорите, что вам нужны только строки, где выражение 'CASE' равно 1 – Lamak