Ниже мой запрос:SQL запросов дает другой результат для PercentAnalysed
SELECT Runs.runId
,Runs.prodId
,passCount
,failCount
,CASE
WHEN failcount <> 0
THEN cast((round(((counts.Count 100.0)/failcount), 0)) AS NUMERIC)
WHEN failcount = 0
OR ***counts.Count IS NULL
THEN 100***
ELSE 0
END **PercentAnalysed**
FROM Runs AS Runs
INNER JOIN Product AS Product
ON Runs.prodId = Product.prodId
LEFT JOIN (
SELECT COUNT(*) AS 'Count'
,Results.runId
FROM Results
INNER JOIN Runs
ON Results.runId = Runs.runId
WHERE Analysed = 'True'
GROUP BY Results.runId
) counts
ON counts.runId = Runs.runId
Моя проблема заключается в том, что когда counts.Count является NULL, то процент Анализируются не показан 100.It пустым. (EDIT: согласно запросу, как вы можете видеть, когда counts.Count равен NULL, значение для столбца PercentAnalysed должно быть 100, но оно отображается как NULL)
Может ли кто-нибудь сказать мне, даже почему условие в инструкции CASE WHEN failcount = 0 ИЛИ counts.Count IS NULL THEN 100 не работает?
Это дает несколько иной результат, чем что? Дайте мне секунду, я должен увидеть в своем кристаллическом шаре. – krzysiej
: P Извините, я попытался объяснить в вопросе, хотя. Я дам ему еще одну попытку :) – bishnu
Могут ли все, пожалуйста, остановить downvoting: P Я пытаюсь объяснить .. дай мне минуту, пожалуйста :) – bishnu