2013-10-08 6 views
-1

Я изо всех сил пытаюсь написать запрос для приведенного ниже сценария, может ли кто-нибудь мне помочь?SQL, отображающий неправильные записи в состоянии ИЛИ

У меня две ошибки столбца, а приоритет - это числовые поля. необходимо получить на основе условия. Если я выбираю значение 3, например, из экрана пользовательского интерфейса, он должен искать запись в таблице.

если матч значение в любом из колонки я должен вернуть запись я написал, как это

Select * 
    FROM WorkItems 
WHERE [System.Title] like '%defect%' 
    AND [System.WorkItemType] in ('Incident','bug') 
    AND [ErrorClass] =3 
    OR [Microsoft.VSTS.Common.Priority] =3 
    AND [Customer] = 'XYZ' 
order by [System.WorkItemType] 

Его давая ложные записи и выборки всех записей с приоритетом или errorclass = 3, я нужен записывает только тип workitem = инцидент или ошибка для класса ошибки = 3 или приоритет = 3

его возвращение всех записей из таблицы.

Если я поставил и состояние, как этот [ErrorClass] = 3 и [Microsoft.VSTS.Common.Priority] = 3 его возвращение, только если оба значения являются 3. Мне нужно все записи, которые соответствуют 3 наряду с выше условием

ответ

3

попробовать

Select * 
    FROM WorkItems 
WHERE System.Title like '%defect%' 
    AND System.WorkItemType in ('Incident', 'bug') 
    AND (ErrorClass = 3 OR Microsoft.VSTS.Common.Priority = 3)  
    AND Customer = 'XYZ' 
order by System.WorkItemType 
+1

Просто добавить к этому, так что OP что-то узнает. Скобки, добавленные в предложение where, нарушают цепочку логики. Поэтому вместо того, чтобы говорить, что это AND ИЛИ для каждого условия, вы можете разбить его на скобки, чтобы иметь предложение OR в предложении AND, если хотите. –

+0

Большое спасибо, его работа. извините, я беден в sql-запросе. – user1845163

+0

Оператор операций состоит в том, что сначала будут оцениваться условия ANd, а затем OR caonditions. Это важно знать, поскольку оно влияет на результаты. Лучше всего заключать вещи в() (которые выше в порядке операций, чем предложение AND), когда вы смешиваете AND и OR, чтобы убедиться, что ваши намерения были ясными. – HLGEM

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