我必须在桌子上做一个自我加入。我正在尝试返回几列的列表,以查看在同一天(MM/DD/YYYY)执行了多少每种类型的药物测试,其中至少完成了两项测试,其中至少一项导致了'UN'的结果代码。
我正在加入其他表格以获取如下信息。问题是我不太明白如何排除那些只有一个结果行的人,他们当天确实有一个“联合国”结果,但当天没有任何其他测试。
查询结果(列)
县、DrugTestID、ID、名称、CollectionDate、DrugTestType、结果、计数(DrugTestType)
我有几行 ID 12345 是正确的。但是 ID 12346 是单行,其中显示他们的行结果为 count (1)。他们在这一天得到了“联合国”的结果,但那天他们没有进行任何其他测试。我想排除这个。
我尝试了以下查询
选择 c.desc 为“县”, dt.pid 作为“PID”, dt.id 作为 'DrugTestID', p.id 作为“ID”, bio.FullName 为“参与者”, 转换(varchar,dt.CollectionDate,101)为'CollectionDate', dtt.desc 作为“药物测试类型”, dt.result 作为结果, 计数(dt.dru_drug_test_type)作为“测试类型计数” 从 dbo.Test as dt with (nolock) 在 dt.pid = h.id 上以 h 身份加入 dbo.History 在 h.pid = p.id 上以 p 身份加入 dbo.Participant 在 bio.id = p.id 上加入 BioData 作为 bio 在 p.CountyCode = c.code 上加入 County as c with (nolock) 在 dt.DrugTestType = dtt.code 上加入 DrugTestType 作为 dtt 与 (nolock) 内部联接 ( 选择不同的 dt2.pid, CONVERT(varchar, dt2.CollectionDate, 101) as 'CollectionDate' 从 dbo.DrugTest as dt2 with (nolock) 在 dt2.pid = h2.id 上加入 dbo.History 作为 h2 在 h2.pid = p2.id 上以 p2 身份加入 dbo.Participant 在哪里 dt2.result = '联合国' 和 '11-01-2011' 和 '10-31-2012' 之间的 dt2.CollectionDate 和 p2.DrugCourtType = 'AD' ) 作为派生的 在 dt.pid = 派生.pid 和转换(varchar,dt.CollectionDate,101)=转换(varchar,派生。CollectionDate,101) 通过...分组 c.desc、dt.pid、p.id、dt.id、bio.fullname、dt.CollectionDate、dtt.desc、dt.result 订购 c.desc ASC、参与者 ASC、dt.CollectionDate ASC