и месяц - первые два столбика) и fact_SubscriberFilters (id, месяц и id товара). В первой таблице есть все месяцы для каждого id, во второй есть пробелы. Как можно их объединить, чтобы для месяцев-пробелов брались данные за ближайший прошлый непустой месяц. Например, для месяца 202007 и id 12 брался GoodCode за 202006 и id 12?
очень сумбурно.
вместо JOIN попробуй что-то вроде этого SELECT * FROM #all_months_subs ams OUTER APPLY ( SELECT TOP 1 * FROM fact_SubscriberFilters fsf WHERE (fsf.subscriberId = ams.subscriberId) AND ((fsf.month_id = ams.month_id) OR (ams.month_id BETWEEN ams.month_id-1000 AND ams.month_id+1000)) ) fsf2
уже через cross aplly решил, спасибо
ну или через него, логика та же
Обсуждают сегодня