通过MAX的复杂内部联接确定旧的调查结果(日期)

时间:2018-10-15 19:43:19

标签: sql tsql azure-sql-database inner-join

我们有一个复杂的查询来获取最新的客户调查。但是,如果客户将调查作为另一个程序的一部分,则两个调查结果都将重复。我们正在尝试使用内部联接和Max(日期)   任何帮助将不胜感激。这是我们关于stackoverflow的第一篇文章,希望我们能提供所有正确的信息。

    (SELECT ESR2.SURVEYRESULTID, ESR2.CLIENTID, ESR2.SURVEYDATE
FROM EPISODESURVEYRESULTS ESR2 INNER JOIN [EPISODESURVEYRESULTANSWERS] ESRA2 ON ESRA2.SURVEYRESULTID = ESR2.SURVEYRESULTID 
INNER JOIN [EPISODESURVEYRESULTS] ESR ON ESR2.CLIENTID = ESR.CLIENTID AND ESR.SURVEYID = 242
AND ESR2.SURVEYDATE = (SELECT MAX(SURVEYDATE) FROM [EPISODESURVEYRESULTS] WHERE SURVEYDATE BETWEEN '2017-07-01' AND '2018-06-30' AND EPIID = ESR2.EPIID AND ESR2.SURVEYID = 243 AND ESR.EPIID = EPIID)
INNER JOIN [EPISODESURVEYRESULTANSWERS] ESRA ON ESRA.SURVEYRESULTID = ESR.SURVEYRESULTID
WHERE ESR2.EPIID = ESR.EPIID
AND ESR2.PROGID IN (SELECT progid FROM programs where ServiceAreaId = 1)
AND ESR.SURVEYID = 242
AND ESRA.QUESTIONID = 2070
AND ESR2.SURVEYID = 243
AND ESRA2.QUESTIONID = 2070)
ORDER BY ESR2.CLIENTID ASC

我们正在尝试消除以粗体显示的两行。

enter image description here

0 个答案:

没有答案