2013-03-11 7 views
0

У меня возникли проблемы с использованием оператора Case для нескольких критериев, я не знаю, как вложить другой CASE.SQL-вычисляемый столбец с несколькими критериями

  • DateTime колонка: Control_OpenDateOwner
  • DateTime колонка: Control_ClosedDateRev

вычисляемый столбец:

(case when [Control_ClosedDateRev] IS NULL then '1' else '0' end) 

Попытка я хочу, чтобы вычислить, когда OPENDATE больше, чем 4 дня открыт (с использованием today()), а дата закрытия - Null, положить 1 (открытая запись и открытие более 4 дней или 0, если запись закрыта или менее 4 дней открыта, я не могу заставить ее работать.

Примечание: Я не эксперт по SQL, новичок. Пробовал этот пост, но он меня смутил. (Best way to do nested case statement logic in SQL Server)

Спасибо

+0

Какое ваше сообщение? – Kaf

+0

'today' не является признанным встроенным именем функции. по коду MATT BUSCHE, который я нашел простым. –

+1

На sql-сервере такой функции нет. Вы можете использовать 'getdate()'. – Kaf

ответ

1

Вы можете использовать AND в CASE заявлении. Вам не нужно выставлять действительное вложенное заявление CASE в этом сценарии

(CASE WHEN [Control_ClosedDateRev] IS NULL AND DateDiff(day,opendate,getDate()) > 4 THEN '1' ELSE '0' END) 
+0

Я получаю «ошибку проверки», «сегодня» не является признанным встроенным именем функции. –

+1

@EddyV Извините, правильный синтаксис 'getDate()' –

+0

Спасибо, Мэтт! :) –

Смежные вопросы