powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Не работает вложенный запрос
12 сообщений из 12, страница 1 из 1
Не работает вложенный запрос
    #39340526
it-sphere
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Кто знает...
Существует ли в Access ограничение по длине вложенных запросов?
Вопрос возник при попытке добавления в условие отбора вложенного запроса.
Access ругнулся так "Слишком длинный текст для изменения"
Попытка вставки через SQL привела так же к ошибке. (см. файл)
По отдельности оба запроса работают.
Вот первый запрос в котором потом, вместо значения 506117, подставим условие.
Код: sql
1.
2.
3.
SELECT CLng([1_Base]![1_id] & [4_Mail]![id_4_Mail]) AS base_mail, [1_Base].[1_id], [1_Base].[1_compani], [1_Base].[1_id_cites], [4_Mail].Theme_4_Mail, [4_Mail].Path_Mail_4_Mail
FROM (2_cities INNER JOIN (1_Base INNER JOIN 3_Theme_Delivery ON [1_Base].[1_type] = [3_Theme_Delivery].category_recipient_3_Theme_Delivery) ON [2_cities].[2_id] = [1_Base].[1_id_cites]) LEFT JOIN 4_Mail ON [3_Theme_Delivery].id_3_Theme_Delivery = [4_Mail].id_3_Theme_Delivery
WHERE (((CLng([1_Base]![1_id] & [4_Mail]![id_4_Mail])) In (506117)));   



Это второй запрос который возвращает условие для первого запроса
Код: sql
1.
2.
3.
4.
5.
6.
7.
SELECT Min(id_base_mail.id_base_mail) AS [Min-id_base_mail]
FROM [SELECT [1_Base].[1_id_cites], CLng([1_Base]![1_id] & [4_Mail]![id_4_Mail]) AS id_base_mail, [1_Base].[1_id]
FROM (1_Base LEFT JOIN 3_Theme_Delivery ON [1_Base].[1_type] = [3_Theme_Delivery].category_recipient_3_Theme_Delivery) LEFT JOIN 4_Mail ON [3_Theme_Delivery].id_3_Theme_Delivery = [4_Mail].id_3_Theme_Delivery
GROUP BY [1_Base].[1_id_cites], CLng([1_Base]![1_id] & [4_Mail]![id_4_Mail]), [1_Base].[1_id]
HAVING ((([1_Base].[1_id_cites])=[Forms]![Рассылка]![City]) AND ((CLng([1_Base]![1_id] & [4_Mail]![id_4_Mail])) Not In (SELECT CLng([5_History_Mail]![5_id_1] & [5_History_Mail]![5_id_4_mail]) AS id_number 
FROM 2_cities INNER JOIN (1_Base INNER JOIN 5_History_Mail ON [1_Base].[1_id] = [5_History_Mail].[5_id_1]) ON [2_cities].[2_id] = [1_Base].[1_id_cites] 
GROUP BY CLng([5_History_Mail]![5_id_1] & [5_History_Mail]![5_id_4_mail]), [2_cities].[2_id] HAVING ((([2_cities].[2_id])=[Forms]![Рассылка]![City]) AND ((Max([5_History_Mail].[5_date])>Date()-Day(7))=0)))))].AS id_base_mail GROUP BY id_base_mail.[1_id]);



А все вместе выглядит так
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT CLng([1_Base]![1_id] & [4_Mail]![id_4_Mail]) AS base_mail, [1_Base].[1_id], [1_Base].[1_compani], [1_Base].[1_id_cites], [4_Mail].Theme_4_Mail, [4_Mail].Path_Mail_4_Mail
FROM (2_cities INNER JOIN (1_Base INNER JOIN 3_Theme_Delivery ON [1_Base].[1_type] = [3_Theme_Delivery].category_recipient_3_Theme_Delivery) ON [2_cities].[2_id] = [1_Base].[1_id_cites]) LEFT JOIN 4_Mail ON [3_Theme_Delivery].id_3_Theme_Delivery = [4_Mail].id_3_Theme_Delivery
WHERE (((CLng([1_Base]![1_id] & [4_Mail]![id_4_Mail])) In (SELECT Min(id_base_mail.id_base_mail) AS [Min-id_base_mail]
FROM [SELECT [1_Base].[1_id_cites], CLng([1_Base]![1_id] & [4_Mail]![id_4_Mail]) AS id_base_mail, [1_Base].[1_id]
FROM (1_Base LEFT JOIN 3_Theme_Delivery ON [1_Base].[1_type] = [3_Theme_Delivery].category_recipient_3_Theme_Delivery) LEFT JOIN 4_Mail ON [3_Theme_Delivery].id_3_Theme_Delivery = [4_Mail].id_3_Theme_Delivery
GROUP BY [1_Base].[1_id_cites], CLng([1_Base]![1_id] & [4_Mail]![id_4_Mail]), [1_Base].[1_id]
HAVING ((([1_Base].[1_id_cites])=[Forms]![Рассылка]![City]) AND ((CLng([1_Base]![1_id] & [4_Mail]![id_4_Mail])) Not In (SELECT CLng([5_History_Mail]![5_id_1] & [5_History_Mail]![5_id_4_mail]) AS id_number 
FROM 2_cities INNER JOIN (1_Base INNER JOIN 5_History_Mail ON [1_Base].[1_id] = [5_History_Mail].[5_id_1]) ON [2_cities].[2_id] = [1_Base].[1_id_cites] 
GROUP BY CLng([5_History_Mail]![5_id_1] & [5_History_Mail]![5_id_4_mail]), [2_cities].[2_id] HAVING ((([2_cities].[2_id])=[Forms]![Рассылка]![City]) AND ((Max([5_History_Mail].[5_date])>Date()-Day(7))=0)))))].AS id_base_mail GROUP BY id_base_mail.[1_id]))));


Танец с бубнами не помог....
Помогите, кто знает
...
Рейтинг: 0 / 0
Не работает вложенный запрос
    #39340528
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
it-sphere, обрати внимание на квадратные скобки в сообщении. Редактор правит по своему разумению и... не всегда правильно.
...
Рейтинг: 0 / 0
Не работает вложенный запрос
    #39340533
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В скрине ошибки лишний знак равенства.

PS. Мог бы и отформатировать запрос.
...
Рейтинг: 0 / 0
Не работает вложенный запрос
    #39340539
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinaВ скрине ошибки лишний знак равенства.

PS. Мог бы и отформатировать запрос.В самом тексте нет такой ошибки - видимо ТС набрал с ошибкой...
...
Рейтинг: 0 / 0
Не работает вложенный запрос
    #39340547
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Панург , в тексте запроса этого знака равенства нет. Запрос, судя по кривизне, вставлен сюда тупо копипастом. С другой стороны, скриншот вряд ли правился...
Но если именно на показанный текст запроса именно показанная ошибка, то это более чем странно.
...
Рейтинг: 0 / 0
Не работает вложенный запрос
    #39340554
it-sphere
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург,
На сколько я понимаю в [] берутся названия полей у которых есть пробелы между словами. Поправьте если заблуждаюсь.
Акс все поля загоняет в []
Пока сомнительного ни чего не увидел.
...
Рейтинг: 0 / 0
Не работает вложенный запрос
    #39340555
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
it-sphere,

кроме FROM [SELECT.. ... и нет закрывающей
не тот тип скобки
получается длинное имя переменной
суммарная же длина запроса допустимая --менее 1700 байт
...
Рейтинг: 0 / 0
Не работает вложенный запрос
    #39340557
it-sphere
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,
Это мой косяк со знаком равенства.
Вот "правильный" скриншот.
Запрос отформатирую, вы покажите пример в каком виде подать.
...
Рейтинг: 0 / 0
Не работает вложенный запрос
    #39340558
it-sphere
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Забыл скриншот...
...
Рейтинг: 0 / 0
Не работает вложенный запрос
    #39340591
it-sphere
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо!
Танец с бубном, скобками [] и ;
Принес результат

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
SELECT CLng([1_Base]![1_id] & [4_Mail]![id_4_Mail]) AS base_mail, [1_Base].[1_id], [1_Base].[1_compani], [1_Base].[1_id_cites], [4_Mail].Theme_4_Mail, [4_Mail].Path_Mail_4_Mail
FROM (2_cities INNER JOIN (1_Base INNER JOIN 3_Theme_Delivery ON [1_Base].[1_type] = [3_Theme_Delivery].category_recipient_3_Theme_Delivery) ON [2_cities].[2_id] = [1_Base].[1_id_cites]) LEFT JOIN 4_Mail ON [3_Theme_Delivery].id_3_Theme_Delivery = [4_Mail].id_3_Theme_Delivery
WHERE (((CLng([1_Base]![1_id] & [4_Mail]![id_4_Mail])) In (

SELECT Min(id_base_mail.id_base_mail) AS [Min-id_base_mail]
FROM (SELECT [1_Base].[1_id_cites], CLng([1_Base]![1_id] & [4_Mail]![id_4_Mail]) AS id_base_mail, [1_Base].[1_id]
FROM (1_Base LEFT JOIN 3_Theme_Delivery ON [1_Base].[1_type] = [3_Theme_Delivery].category_recipient_3_Theme_Delivery) LEFT JOIN 4_Mail ON [3_Theme_Delivery].id_3_Theme_Delivery = [4_Mail].id_3_Theme_Delivery
GROUP BY [1_Base].[1_id_cites], CLng([1_Base]![1_id] & [4_Mail]![id_4_Mail]), [1_Base].[1_id]
HAVING ((([1_Base].[1_id_cites])=[Forms]![Рассылка]![City]) AND ((CLng([1_Base]![1_id] & [4_Mail]![id_4_Mail])) Not In (SELECT CLng([5_History_Mail]![5_id_1] & [5_History_Mail]![5_id_4_mail]) AS id_number 
FROM 2_cities INNER JOIN (1_Base INNER JOIN 5_History_Mail ON [1_Base].[1_id] = [5_History_Mail].[5_id_1]) ON [2_cities].[2_id] = [1_Base].[1_id_cites] 
GROUP BY CLng([5_History_Mail]![5_id_1] & [5_History_Mail]![5_id_4_mail]), [2_cities].[2_id] HAVING ((([2_cities].[2_id])=[Forms]![Рассылка]![City]) AND ((Max([5_History_Mail].[5_date])>Date()-Day(7))=0)))))) AS id_base_mail
GROUP BY id_base_mail.[1_id];

)));
...
Рейтинг: 0 / 0
Не работает вложенный запрос
    #39340598
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
it-sphere , теперь обрати внимание на КВАДРАТНЫЕ скобки в выделенных фрагментах:

it-sphereА все вместе выглядит так
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT CLng([1_Base]![1_id] & [4_Mail]![id_4_Mail]) AS base_mail, [1_Base].[1_id], [1_Base].[1_compani], [1_Base].[1_id_cites], [4_Mail].Theme_4_Mail, [4_Mail].Path_Mail_4_Mail
FROM (2_cities INNER JOIN (1_Base INNER JOIN 3_Theme_Delivery ON [1_Base].[1_type] = [3_Theme_Delivery].category_recipient_3_Theme_Delivery) ON [2_cities].[2_id] = [1_Base].[1_id_cites]) LEFT JOIN 4_Mail ON [3_Theme_Delivery].id_3_Theme_Delivery = [4_Mail].id_3_Theme_Delivery
WHERE (((CLng([1_Base]![1_id] & [4_Mail]![id_4_Mail])) In (SELECT Min(id_base_mail.id_base_mail) AS [Min-id_base_mail]
FROM [SELECT [1_Base].[1_id_cites], CLng([1_Base]![1_id] & [4_Mail]![id_4_Mail]) AS id_base_mail, [1_Base].[1_id]
FROM (1_Base LEFT JOIN 3_Theme_Delivery ON [1_Base].[1_type] = [3_Theme_Delivery].category_recipient_3_Theme_Delivery) LEFT JOIN 4_Mail ON [3_Theme_Delivery].id_3_Theme_Delivery = [4_Mail].id_3_Theme_Delivery
GROUP BY [1_Base].[1_id_cites], CLng([1_Base]![1_id] & [4_Mail]![id_4_Mail]), [1_Base].[1_id]
HAVING ((([1_Base].[1_id_cites])=[Forms]![Рассылка]![City]) AND ((CLng([1_Base]![1_id] & [4_Mail]![id_4_Mail])) Not In (SELECT CLng([5_History_Mail]![5_id_1] & [5_History_Mail]![5_id_4_mail]) AS id_number 
FROM 2_cities INNER JOIN (1_Base INNER JOIN 5_History_Mail ON [1_Base].[1_id] = [5_History_Mail].[5_id_1]) ON [2_cities].[2_id] = [1_Base].[1_id_cites] 
GROUP BY CLng([5_History_Mail]![5_id_1] & [5_History_Mail]![5_id_4_mail]), [2_cities].[2_id] HAVING ((([2_cities].[2_id])=[Forms]![Рассылка]![City]) AND ((Max([5_History_Mail].[5_date])>Date()-Day(7))=0)))))].AS id_base_mail GROUP BY id_base_mail.[1_id]))));



Танец с бубнами не помог....
...
Рейтинг: 0 / 0
Не работает вложенный запрос
    #39340603
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
it-sphereТанец с бубном, скобками [] и ;
Принес результатЗакрой запрос с сохранением. Открой опять в режиме конструктора. Проверь на квадратные скобки...
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Не работает вложенный запрос
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]