Я новичок здесь, и поэтому я прошу прощения за то, что задал (как мне кажется,) сложный вопрос сразу, но я застрял и надеюсь, что вы, ребята, можете мне помочь. Я приложил к этому изображение, которое показывает мой дизайн таблиц и как они связаны друг с другом (скриншот MS Access). Это, вероятно, поможет увидеть при чтении моего вопроса:
Я пытаюсь написать запрос, который, учитывая «Конец финансового года» из таблицы «Участие клиента», возвращает поля «Имя инвестиции», которые не существуют в текущем году (конец финансового года) «Клиент K1 / Налоговый отчет ", которые DID / DO существовали в конце финансового года, предшествующего.
По сути, мне нужен список названий инвестиций, которые существовали в списке / отчете за прошлый год, у которых нет отчета / списка за этот год.
Прошу прощения за мои элементарные синтаксические навыки или за любые ошибки, которые я, возможно, совершил.
Заранее благодарю за любую помощь, которую вы можете оказать!
![Table Design Image](https://i.stack.imgur.com/MNU8m.png)
Мой код SQL сейчас:
PARAMETERS [CURRENT FISCAL YEAR] DateTime, [COMPARATIVE FISCAL YEAR] DateTime;
SELECT Investments.[Investment Name], [Client Engagement].[Fiscal Year End]
FROM Investments INNER JOIN ([Investment Year] INNER JOIN ([Client Engagement] INNER JOIN [Client K1/Tax Report] ON [Client Engagement].EngagementID = [Client K1/Tax Report].[Client Engagement ID]) ON [Investment Year].[Investment FS ID] = [Client K1/Tax Report].[Investment FS ID]) ON Investments.[Investment Name] = [Investment Year].[Investment Name]
WHERE ((([Client Engagement].[Fiscal Year End])=[CURRENT FISCAL YEAR])) NOT IN
(
SELECT Investments.[Investment Name], [Client Engagement].[Fiscal Year End]
FROM Investments INNER JOIN ([Investment Year] INNER JOIN ([Client Engagement] INNER JOIN [Client K1/Tax Report] ON [Client Engagement].EngagementID = [Client K1/Tax Report].[Client Engagement ID]) ON [Investment Year].[Investment FS ID] = [Client K1/Tax Report].[Investment FS ID]) ON Investments.[Investment Name] = [Investment Year].[Investment Name]
WHERE ((([Client Engagement].[Fiscal Year End])=[COMPARATIVE FISCAL YEAR]))
)
Отформатирован для удобства чтения:
PARAMETERS [CURRENT FISCAL YEAR] DATETIME
,[COMPARATIVE FISCAL YEAR] DATETIME;
SELECT Investments.[Investment Name]
,[Client Engagement].[Fiscal Year End]
FROM Investments
INNER JOIN (
[Investment Year] INNER JOIN (
[Client Engagement] INNER JOIN [Client K1/Tax Report] ON [Client Engagement].EngagementID = [Client K1/Tax Report].[Client Engagement ID]
) ON [Investment Year].[Investment FS ID] = [Client K1/Tax Report].[Investment FS ID]
) ON Investments.[Investment Name] = [Investment Year].[Investment Name]
WHERE ((([Client Engagement].[Fiscal Year End]) = [CURRENT FISCAL YEAR])) NOT IN (
SELECT Investments.[Investment Name]
,[Client Engagement].[Fiscal Year End]
FROM Investments
INNER JOIN (
[Investment Year] INNER JOIN (
[Client Engagement] INNER JOIN [Client K1/Tax Report] ON [Client Engagement].EngagementID = [Client K1/Tax Report].[Client Engagement ID]
) ON [Investment Year].[Investment FS ID] = [Client K1/Tax Report].[Investment FS ID]
) ON Investments.[Investment Name] = [Investment Year].[Investment Name]
WHERE ((([Client Engagement].[Fiscal Year End]) = [COMPARATIVE FISCAL YEAR]))
)