我有这样的查询(使用SQL Server 2008):计数唯一的ID与案例
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
@ user3253448。 。 。我的编辑版本是你在找什么? –
我的朋友,我欠你很多。你完全钉了它。非常感谢! – Lightspeed