Я озадачен тем, как построить алгоритм для определения среднего числа активных клиентов в нашей системе. Они содержат разнообразную информацию, идентификатор, дату начала контакта, дату окончания контакта, дату начала и окончания учетной записи, даты транзакций и т. Д. Не все из них имеют постоянную ежедневную активность, которую я мог бы захватить. Я не могу определить, как определить количество активных клиентов в определенную дату.SQL-код для определения средних дневных итогов
Я не могу существенно изменить структуру базы данных или изменить таблицы, поэтому мне нужно работать с тем, что у меня есть. Одна из идей, которая, по моему мнению, заключается в том, чтобы проверить, больше ли дата окончания контакта больше даты X или равна нулю, и проверить, не указана ли дата начала контакта меньше даты X. Я подключил это, но получил то же самое число за любой день, когда я вставляю. Есть ли другой способ попробовать это? Я мог бы добавить этот код, когда приступаю к работе, но сейчас я отправлю его на рассмотрение ...
** Извините, я оставил важный кусок. Мне нужно иметь возможность идентифицировать общий актив в любой конкретный день в прошлом, а затем получать среднесуточные суммы за год. Возможно, я разрешил первую часть этого с помощью приведенных ниже сообщений. Сначала я создал переменную в моем запросе, чтобы держать дату мне нужно искать ... @ report_dt
and contact_end_dt >= @report_dt
and contact_start_dt <= @report_dt
Этот кусок сделал это для меня. Теперь мне нужно выяснить, как это сделать через год, и увеличивать переменную @report_dt один день за раз.
Спасибо за помощь ... вы потрясающе! Doug
Это SQL, не ищите петли. Создайте таблицу со всеми 365/366 днями, которые вас интересуют, и присоединитесь к ней. Или, всего за все активные дни, которые появляются в году и делятся на 365/366 ... * [A активен в течение 365 дней, B активен в течение 165 дней, C активен в течение 200 дней. Среднее - 2. Не важно, в какие дни они были активны, только то, что вы считаете дни, которые выпадают в год, о котором идет речь.] * – MatBailie