2012-06-13 1 views
1

Я новичок в работе с синтаксисом формул в стойких колонках.Вложенная логика в стойких колонках Формула

A - Мне нужно случай, когда (CustomerAccountID IS NULL и MissCustNameMatched = 0) ИЛИ errLicensingProgMissing = 1 ИЛИ errLicensingSubMissing = 1, то (1) остальное (0) конец

Это не правильно проверить.

B - Или я могу сделать это так или иначе, как это *

случай

  • когда [MissCustName] истинно, то
    • когда [CustomerAccountName] IS NULL, то
      • (1)
    • еще
      • (0)
    • конец
  • еще
    • (0)
  • конец *

ответ

1

Ваши два случая не совпадают с именами столбцов, но следующее PERSISTED поле объявление показывает, как это можно сделать с помощью инструкции CASE.

CREATE TABLE dbo.Test (
    CustomerAccountID INTEGER 
    , MissCustNameMatched INTEGER 
    , errLicensingProgMissing INTEGER 
    , errLicensingSubMissing INTEGER 
    , persistedField AS 
     CASE MissCustNameMatched WHEN 1 
     THEN 
     CASE CustomerAccountID WHEN 1 
     THEN 1 
     ELSE 0 
     END 
     ELSE 0 
     END PERSISTED 
)