Вернуть 0, если нет результатов в SQL Query - PullRequest
1 голос
/ 18 июня 2019

Мне нужно запросить 2 разных значения в одном и том же поле, но если у одного из них нет результатов, мне нужно, чтобы запрос возвратил 0

SELECT Test_Code, COUNT(*) as Count
FROM Test_Table with (nolock)
WHERE Start_Date >= dateadd(mi,-10,getdate()) AND
      (Test_Code='110' OR Test_Code='112')
GROUP BY Test_Code

Test_Code 110 всегда будет иметь результаты, поэтому нет необходимостивернуть 0 там.Но если у Test_Code 112 нет результатов, мне нужен запрос, чтобы вернуть 0.

1 Ответ

2 голосов
/ 18 июня 2019

Вам нужен список всех значений, которые вы хотите вернуть - в случае, если они не существуют в таблице. Затем используйте left join:

SELECT v.Test_Code, COUNT(tt.Test_code) as Count
FROM (VALUES ('110'), ('112')) v(test_code) LEFT JOIN
     Test_Table tt
     ON tt.Test_Code = v.Test_Code AND
        tt.Start_Date >= dateadd(minute, -10, getdate()) 
GROUP BY v.Test_Code
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...