Заменить подзапрос в запросе SQL - PullRequest
1 голос
/ 22 января 2020

Я работаю в MS Access, и существует огромный запрос, который необходим для сбора данных из множества разных таблиц. В этом запросе я работаю с некоторыми подзапросами, и к настоящему времени это работает довольно хорошо.

Но теперь я хочу заменить эти подзапросы, потому что они недоступны в каждой базе данных, с которой я работаю.

Это это SQL Запрос, с которым я работаю:

SELECT 
Left([INPUT_BASIC_ELEMENT_DATA].[TO_NODE_NAME],7) & "Test" & Right([INPUT_BASIC_ELEMENT_DATA].[TO_NODE_NAME],3) AS su_nr, 
INPUT_BASIC_ELEMENT_DATA.FROM_NODE_NAME AS SupportFunction,  
CLEAN.su_clean_load_Fx, CLEAN.su_clean_load_Fy,CLEAN.su_clean_load_Fz, 
CLEAN.su_clean_move_max_Dx, CLEAN.su_clean_move_max_Dy, CLEAN.su_clean_move_max_Dz
FROM (((((((INPUT_BASIC_ELEMENT_DATA LEFT JOIN INPUT_BASIC_ELEMENT_DATA AS INPUT_BASIC_ELEMENT_DATA_1 ON INPUT_BASIC_ELEMENT_DATA.TO_NODE_NAME = INPUT_BASIC_ELEMENT_DATA_1.FROM_NODE_NAME) LEFT JOIN CLEAN ON INPUT_BASIC_ELEMENT_DATA.TO_NODE_NAME = CLEAN.NODE_NAME) )))))
WHERE (((Len([INPUT_BASIC_ELEMENT_DATA].[TO_NODE_NAME]))="10"));

Как вы можете видеть, я работаю с подзапросом, который называется CLEAN

Этот подзапрос делает это:

SELECT OUTPUT_RESTRAINTS_SUMMARY.NODE_NAME, OUTPUT_RESTRAINTS_SUMMARY.FX AS su_clean_load_Fx, OUTPUT_RESTRAINTS_SUMMARY.FY AS su_clean_load_Fy, OUTPUT_RESTRAINTS_SUMMARY.FZ AS su_clean_load_Fz, OUTPUT_RESTRAINTS_SUMMARY.MX AS su_clean_move_max_Dx, OUTPUT_RESTRAINTS_SUMMARY.MY AS su_clean_move_max_Dy, OUTPUT_RESTRAINTS_SUMMARY.MZ AS su_clean_move_max_Dz
FROM OUTPUT_RESTRAINTS_SUMMARY
WHERE (((OUTPUT_RESTRAINTS_SUMMARY.LCASE_NAME) Like "*CLEAN*"));

Как мне работать без подзапросов в моем верхнем запросе?

Я думаю, что мне нужно скопировать часть или весь подзапрос и вставить его в мое SQL утверждение. Но я не знаю, как это сделать.

Надеюсь, вы мне поможете.

Привет.

1 Ответ

1 голос
/ 23 января 2020

Скопировать подзапрос SQL (без точки с запятой), затем вставить его в другой запрос между символами:

... LEFT JOIN (subquery SQL here) AS Clean ON ....

Затем можно удалить Clean объект запроса.

...