Позвольте мне начать с того, что я провел несколько дней в поисках S.O. и не смогли найти решение. Я заранее прошу прощения, если решение очень простое, но я все еще учусь и ценю любую помощь, которую я могу получить.
У меня есть база данных MS Access 2010, и я пытаюсь создать набор запросов для информирования других форм и запросов. Существует две таблицы: контактная информация заемщика (BC_Info) и основные финансовые показатели (BF_Indicators). Каждый месяц я проверяю и отслеживаю ключевые показатели эффективности каждого заемщика. Я хотел бы создать запрос, который будет предоставлять самую последнюю запись на основе ввода в текстовое поле (формы! [Меню портфолио]! Текст47).
Два соображения отделили это от других постов, которые я видел в теге "great-n-per-group":
- Не каждый заемщик будет иметь данные за каждый месяц.
- Мне нужно иметь возможность посмотреть в прошлое, т.е. если это 1 января 2019 года, и я хочу увидеть показатели по состоянию на 31 июля 2017 года, я хочу сделать
уверен, что я вижу только данные до 31 июля 2017 года, но как можно ближе к
эта дата возможна.
Поля следующие:
BC_Info
- BorrowerName
-PartnerID
BF_Indicators
-Fin_ID
-DateUpdated
Таблицы связаны с BorrowerName - уникальным соглашением об именах, используемым для первичного ключа BC_Info.
Что у меня сейчас есть:
SELECT BCI.BorrowerName, BCI.PartnerID, BFI.Fin_ID, BFI.DateUpdated
FROM ((BC_Info AS BCI
INNER JOIN BF_Indicators AS BFI
ON BFI.BorrowerName = BCI.BorrowerName)
INNER JOIN
(
SELECT Fin_ID, MAX(DateUpdated) AS MAX_DATE
FROM BF_Indicators
WHERE (DateUpdated <= Forms![Portfolio_Review Menu]!Text47 OR
Forms![Portfolio_Review Menu]!Text47 IS NULL)
GROUP BY Fin_ID
) AS Last_BF ON BFI.Fin_ID = Last_BF.Fin_ID AND
BFI.DateUpdated = Last_BF.MAX_DATE);
Это дает мне поля, которые мне нужны, и будет хранить записи, которые не соответствуют дате, указанной в текстовом поле, но будут выдавать все записи до ввода текстового поля, а не только самые последние.
Результаты (Дата ввода: 31.12.2008; MEHN-45543 является только Заемщиком с информацией позднее, чем 30.09.2008):
BorrowerName PartnerID Fin_ID DateUpdated
MEHN-45543 19 9 12/31/2018
ARYS-7940 5 10 9/30/2018
FINS-21032 12 11 9/30/2018
ELET-00934 9 12 9/30/2018
MEHN-45543 19 18 9/30/2018
Ожидаемые результаты (дата ввода - 12/31/2018; MEHN-45543 является только Заемщиком с информацией позднее, чем 30.09.08):
BorrowerName PartnerID Fin_ID DateUpdated
MEHN-45543 19 9 12/31/2018
ARYS-7940 5 10 9/30/2018
FINS-21032 12 11 9/30/2018
ELET-00934 9 12 9/30/2018
Как уже упоминалось, я планирую использовать результаты этого запроса для генерации дальнейших запросов, которые используют агрегированную информацию из финансовых показателей для определения качества портфеля в данный момент.
Пожалуйста, дайте мне знать, если есть какая-либо другая информация, которую я могу предоставить. И еще раз, спасибо заранее.