Хорошо, это сводит меня с ума, и решение, которое, я уверен, будет довольно простым, и я, вероятно, ударился головой о стену.У меня есть запрос, где у меня есть данные клиента.По некоторым запросам я ТОЛЬКО хочу, чтобы клиенты между определенной датой, которые посещали клиентов в какой-то момент в этом диапазоне дат, соответствуют 3, 8 или 12 Call_Report_ID. Для этих клиентов я хочу, чтобы они возвращали ВСЕ данные в пределах датыдиапазон, а не только строки с этим кодом посещения клиента.Для других клиентов, у которых нет посещения клиента, я хочу исключить их из данных.
Вот то, с чем я играл, и не могу заставить его работать вообще.
SELECT *
FROM CV.Data AS CV
WHERE EXISTS (SELECT *
FROM CV.Data AS CVD
WHERE CVD.Call_Report_ID IN(3,8,12)
AND CVD.User_ID = 33)
AND CV.User_ID = 33
AND CV.Activity_Date BETWEEN '10/1/2018' AND '3/31/2019'
Итак, вот пример того, что я хочу:
Cust_ID Call_Report_ID Activity_Date
5 3 10/15/2018
5 7 10/28/2018
6 9 10/21/2018
6 11 10/25/2018
В приведенном выше примере, когда я запускаю этот запрос, я хочу, чтобы он возвратил обе строки из Customer 5, так как они имеют идентификатор отчета о вызове из3,8 или 12 в ЛЮБОЙ строке в диапазоне дат, и исключить обе строки из Клиента 6, поскольку они не имеют call_report_Id с этими типами в диапазоне дат
Однако каждый раз, когда я запускаю его, онвозвращает все строки для этого пользователя, а не только те, которые указаны в подзапросе WHERE EXISTS.
В чем я тут не прав?