我们有一个复杂的查询来获取最新的客户调查。但是,如果客户将调查作为另一个程序的一部分,则两个调查结果都将重复。我们正在尝试使用内部联接和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
我们正在尝试消除以粗体显示的两行。