У меня есть этот запрос (с помощью SQL Server 2008):граф уникальные идентификаторы с Case
SELECT
ISNULL(tt.strType,'Random'),
COUNT(DISTINCT t.intTestID) as Qt_Tests,
COUNT(CASE WHEN sd.intResult=4 THEN 1 ELSE NULL END) as Positives
FROM TB_Test t
LEFT JOIN TB_Sample s ON t.intTestID=s.intTestID
LEFT JOIN TB_Sample_Drug sd ON s.intSampleID=sd.intSampleID
LEFT JOIN TB_Employee e ON t.intEmployeeID=e.intEmployeeID
LEFT JOIN TB_Test_Type tt ON t.intTestTypeID=tt.intTestTypeID
WHERE
s.dtmCollection BETWEEN '2013-06-01 00:00' AND '2013-08-31 23:59'
AND f.intCompanyID = 91
GROUP BY
tt.strType
Дело в том, каждый образец имеет четыре записи на sample_drug, которая представляет препараты опробованы на этом образце. И результат выборки может быть положительным от одного до четырех препаратов одновременно. Что мне нужно показать в третьей колонке, просто если образец был положительным, независимо от количества лекарств. И я не могу найти способ сделать это, потому что мне нужен CASE WHEN, чтобы знать, что мне нужны все результаты = 4, но только из уникальных intSampleID.
Заранее благодарен!
С MAX() он показывает только 1 положительный результат для каждого типа теста, независимо от того, сколько у них положительных результатов. – Lightspeed
@ пользователь3253448. , , Является ли моя отредактированная версия тем, что вы ищете? –
Мой друг, я вам задолжаю. Ты полностью прибил его. Спасибо огромное! – Lightspeed