select
tmp.templatedesc Template
,sec.name Section
,q.questiontext Questions,
--,sum(case when q.responserequired = '0' then 1 else null end) as 'N/A'
--,sum(case when q.responserequired = '1' then 1 else null end) as Scored
--,count (case when (qr.weightedscore is not null and tmp.templatedesc = 'QA 30 Day Call Form' and
--sec.name = 'opening' and
--rv.reviewstatusid = 1 )then 1 else null end) as scored
----,(case when qr.weightedscore <> q.weight then rv.reviewid else null end) as fail
--count (case when qr.weightedscore is null then 1 else null end) NA,
--count (case when qr.weightedscore is not null then 1 else null end) scored,
sec.sequencenumber, q.questionnumber, qr.*
from
aqm.dbo.reviewtemplate tmp (nolock)
inner join aqm.dbo.section sec on sec.templateid =tmp.templateid
inner join aqm.dbo.sectionresult scr on scr.sectionid = sec.sectionid
inner join aqm.dbo.questionresult qr on qr.sectionresultid = scr.sectionresultid
inner join aqm.dbo.question q on q.questionid = qr.questionid
--inner join aqm.dbo.questiontype qt on qt.questiontypeid = q.questiontypeid
--left outer join aqm.dbo.questionoption qo on qo.questionid = q.questionid
inner join aqm.dbo.review rv on tmp.templateid = rv.templateid
inner join aqm.dbo.media md on md.mediaid = rv.mediaid
inner join aqm.dbo.iqmuser ut on md.userid = ut.userid
where
rv.reviewstatusid = 1 and
tmp.templatedesc = 'QA 30 Day Call Form'
and sec.name = 'opening' and
convert(varchar,dateadd(hh,-7,rv.reviewdate), 101) = '07/07/2014'
and ut.windowslogonaccount = 'name.name'
and q.questionnumber = 4
--group by
--tmp.templatedesc , sec.name, q.questiontext, sec.sequencenumber, q.questionnumber
order by
sec.sequencenumber, q.questionnumber
questionresultid和sectionresultid返回多个值
如何修复连接以使其不返回多个值?
我把它钻到一个日期和一个人,这样它应该只返回一行结果(但显然没有用)
不确定我能提供的其他数据
更新
我认为它与联接
有关内部联接aqm.dbo.sectionresult scr on scr.sectionid = sec.sectionid 内部联接aqm.dbo.questionresult qr on qr.sectionresultid = scr.sectionresultid
因为那些是返回多个结果的那些。
只是不知道如何解决它
答案 0 :(得分:2)
首先,在你的返回字段或where子句中都没有使用aqm.dbo.questiontype和aqm.dbo.questionoption,所以如果不需要它们就把它们除掉。
其次,你是在aqm.dbo.review上进行外部联接,但是在WHERE子句中需要reviewstatusid和reviewdate - 所以这应该是一个内部联接。
最后,调试此类问题的最佳方法是注释掉COUNT语句和GROUP BY子句 - 并查看返回的原始数据。