Я пробовал несколько различных методов, чтобы посмотреть, смогу ли я заставить это работать, но мне не повезло.
Вот то, что я пытаюсь сделать.
Каждый день есть дела, которые закрываются.Мы хотим отслеживать случаи, которые были «повторно открыты» после того, как они уже были закрыты, но в предоставленной информации нет ничего, что говорило бы о том, что это вновь открытое дело.Единственный способ сделать это - проверить, есть ли Идентификатор случая и Дата отчета, и проверить, существует ли дублирующий Идентификатор случая, который существует и был закрыт до этой даты отчета.Чтобы усложнить ситуацию, вот некоторая дополнительная информация:
1) Распространенная ситуация заключается в том, что дело закрывается, повторно открывается, а затем снова закрывается в течение одного дня (иногда несколько раз).Это должно рассматриваться как повторное открытие, каждый раз, когда это делается после первого экземпляра, даже если это тот же день (я предполагаю, что мы сгруппируем по идентификатору случая?)
2) Я запускаю отчет за 5 днейокно, поэтому дело НЕ должно засчитываться как повторное открытие, если, например, 20.03.2009 дело было закрыто впервые, а затем снова открыто в какой-то момент и закрыто снова 26.03.2009 до 3 /26/2019.В 3/20, 3/21, 3/22 и 3/25 (дни отчетов пропускают выходные и праздничные дни, это уже встроено, ничего для этого не нужно) оно НЕ должно помечаться как повторное открытие, потому чтоДело до сих пор имеет только один экземпляр на или до даты отчета, которую мы рассматриваем.3/26 он будет помечен как повторно открытый, потому что тогда он будет закрыт во второй раз до или до даты отчета.
Вот некоторые запросы:
CREATE TABLE ResolvedCases(
Case_ID varchar(20),
Case_Closed_On datetime,
Report_Date date,
Is_ReOpened_Case VarChar(3) NULL
)
INSERT INTO ResolvedCases VALUES('US1236', '2019-02-16 12:30:45', '2/16/2019')
INSERT INTO ResolvedCases VALUES('US1238', '2019-02-28 15:30:45', '2/28/2019')
INSERT INTO ResolvedCases VALUES('US1234', '2019-03-19 12:30:45', '3/19/2019')
INSERT INTO ResolvedCases VALUES('US1234', '2019-03-19 15:30:45', '3/19/2019')
INSERT INTO ResolvedCases VALUES('US1235', '2019-03-20 9:30:45', '3/20/2019')
INSERT INTO ResolvedCases VALUES('US1235', '2019-03-23 12:40:45', '3/23/2019')
INSERT INTO ResolvedCases VALUES('US1236', '2019-03-20 12:30:45', '3/24/2019')
INSERT INTO ResolvedCases VALUES('US1237', '2019-03-25 12:30:45', '3/25/2019')
Ожидаемые результаты (показаны только случаи с Report_Date между 3/20 и 3/26):
Case_ID Case_Closed_On Report_Date Is_ReOpened_Case
US1234 2019-03-19 12:30:45 3/19/2019 No (There is a duplicate case Id on 3/19 but it didn't happen until 3:30 PM---at 12:30PM this hadn't occurred yet so it was not a re-open at that time)
US1234 2019-03-19 15:30:45 3/19/2019 Yes
US1235 2019-03-20 9:30:45 3/20/2019 No (There is a duplicate case Id on 3/23 but on 3/20 this hadn't occurred yet so it was no a re-open on that date)
US1235 2019-03-23 12:40:45 3/23/2019 Yes
US1236 2019-03-20 12:30:45 3/24/2019 Yes (Because of the case closed on 2/16/2019 even though it doesn't show in this query)
US1237 2019-03-25 12:30:45 3/25/2019 No
Любая помощь будет оценена с этим ...
У меня есть кое-что, что показываетподсчет идентификатора дела, который показывает мне все дубликаты для заданного диапазона дат и сгруппировал их по Case_ID, но я не уверен, как просто пометить каждую отдельную строку как повторно открытую или не основанную на требованиях выше ...