MS Access SQL подзапрос с использованием внешнего результата запроса - PullRequest
0 голосов
/ 11 апреля 2019

Я пытаюсь выполнить подзапрос на основе результата внешнего запроса. Проблема, с которой я столкнулся, заключается в том, что вместо использования внешнего запроса я получаю подсказку для значения из подзапроса.

SELECT Facilities.CustomerName, Facilities.FacilityName,
   Facilities.AnnualPlan, Facilities.AppCo1, 
   (SELECT YeildDB.CornYield
    FROM YeildDB
    WHERE Facilites.AppCo1 = YeildDB.FIPS) AS Expr1
FROM Facilities

Цель состоит в том, чтобы подзапрос использовал значение из Facilities.AppCo1, чтобы соответствовать значению в YeildDB.FIPS, а затем вернул соответствующее значение в YeildDB.CornYeild.

В настоящее время я получаю приглашение, запрашивающее значение YeildDB.FIPS вместо подзапроса с использованием значения внешнего запроса.

Ответы [ 2 ]

2 голосов
/ 11 апреля 2019

Ваш код должен работать.Но вы также можете выразить это, используя LEFT JOIN:

SELECT Facilities.CustomerName, Facilities.FacilityName,
       Facilities.AnnualPlan, Facilities.AppCo1, 
       YeildDB.CornYield
FROM Facilities LEFT JOIN
     YeildDB
     ON Facilties.AppCo1 = YeildDB.FIPS;

Я заметил, что вы ошиблись Facilities - и, возможно, именно поэтому ваша версия не работает.Это одна из причин использовать псевдонимы таблиц:

SELECT f.CustomerName, f.FacilityName,
       f.AnnualPlan, f.AppCo1, 
       y.CornYield
FROM Facilities as f LEFT JOIN
     YeildDB as y
     ON f.AppCo1 = y.FIPS;
0 голосов
/ 11 апреля 2019

Ваш подзапрос может возвращать несколько значений, поэтому вам будет предложено указать, какое из них вы хотите. Вы можете исправить это (или хотя бы скрыть эту проблему), указав top 1:

SELECT Facilities.CustomerName, Facilities.FacilityName,
   Facilities.AnnualPlan, Facilities.AppCo1, 
   (SELECT TOP 1 YeildDB.CornYield
    FROM YeildDB
    WHERE Facilites.AppCo1 = YeildDB.FIPS) AS Expr1
FROM Facilities
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...