Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
 Аватар для Серж_87
1303 / 509 / 63
Регистрация: 09.08.2012
Сообщений: 2,056

Ошибка в тройном запросе sql

29.01.2014, 23:55. Показов 1959. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброй ночи.
Посмотрите, пожалуйста, форумчане, что не так в моем тройном запросе, уже час голову ломаю
SQL
1
2
3
4
5
SELECT Mid$(qz!Формат,InStr(qz!Формат," ")+1) AS Форм, Реестр.Номер  --из поля Формат предыдущего вложенного запроса извлекаю часть строки
FROM (
SELECT LEFT$(qz1!Поле3,InStr(qz1!Поле3,"@")-1) AS Формат  --из Поля3 предыдущего вложенного запроса извлекаю часть строки и получаю поле Формат
FROM (
SELECT [Реестр]![Поле1] & [Реестр]![Поле2] AS Поле3 FROM Реестр)  AS qz1)  AS qz, Реестр  --Объединяю два поля в таблице Реестр, получаю Поле3
Проблема в том, что если вводить записи из всех троих запросов то выводит нормально, а чтобы в первом (самом верхнем) запросе вывести поле из предыдущего (более низкого) запроса и рядом поставить поле из основной таблицы Реестр, то выводит не правильно
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.01.2014, 23:55
Ответы с готовыми решениями:

ошибка в SQL-запросе
вечер добрый, есть малюсенькая проблемка, которая мне жить мешает, SELECT транспорт.номер_авто FROM транспорт INNER JOIN работник ...

Ошибка в запросе SQL
Форма "Достижения преподавателей" - вкладка "Посещение уроков" Добавляю данные - выходит сообщение об ошибке синтаксиса Не могу понять,...

Ошибка в запросе SQL
Подскажите, знающие в чем может быть проблема запроса. При закрытии "Обнаружены символы за пределами инструкции SQL". Проблема в...

21
Эксперт MS Access
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
30.01.2014, 00:21
emenem97, покажите пример неправильного вывода. А то не совсем ясно, что, где, когда :-)
1
 Аватар для VinniPuh
9127 / 6129 / 593
Регистрация: 27.03.2013
Сообщений: 19,972
30.01.2014, 00:37
Цитата Сообщение от mobile Посмотреть сообщение
...emenem97, покажите пример неправильного вывода...
Согласен с - mobile -, мы эти. как там нас - реаниматоры должны тело пощупать, потыкать пальцем, ну или на крайняк курсором мышки, указать в больное место и установить диагноз, больной просто умер или скончался типа от вскрытия
0
 Аватар для Пытливый
3763 / 2267 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
30.01.2014, 00:40
А с чего это вы так имена функций Left и Mid написали с долларом?
ПС: О как, оказывается и так можно в VB писать. Думал в запросе так писать нельзя, оказывается можно. Забавно.
1
 Аватар для VinniPuh
9127 / 6129 / 593
Регистрация: 27.03.2013
Сообщений: 19,972
30.01.2014, 00:44
Цитата Сообщение от Пытливый Посмотреть сообщение
А с чего это вы так имена...
Конкретнно поставлен вопрос, по существу, одобрямс +
0
Эксперт MS Access
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
30.01.2014, 00:54
В данном случае несущественно будет с долларом или без. Без доллара функция возвращает тип Variant, с долларом тип String. В принципе я поддерживаю строгую типизацию, но в запросах, как правило не имеет значения.
0
 Аватар для VinniPuh
9127 / 6129 / 593
Регистрация: 27.03.2013
Сообщений: 19,972
30.01.2014, 00:58
сам чЁйта туплю конкретно сёдня, НО ОО-ОО-О на подсознательном уровне ЧУЮ, вопрос правильно поставлен.
Ну Это типа - поясняю, поддерживаю сомнения Пытливого
0
 Аватар для Пытливый
3763 / 2267 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
30.01.2014, 00:58
Верно, несущественно, это просто диалект Акцесовский меня немного сбил с толку. Я вот что думаю, а может ли внешний запрос видеть собственно эту временную табличку qz1? Она как-бы по логике видна только для временной таблички Формат.
0
Эксперт MS Access
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
30.01.2014, 01:04
Цитата Сообщение от Пытливый Посмотреть сообщение
может ли внешний запрос видеть собственно эту временную табличку qz1? Она как-бы по логике видна только для временной таблички Формат.
Конечно, не может. Набор данных с именем qz1 локализован в подзапросе и не имеет выхода в селект запроса. Но ТС не пояснил свою проблему детально и можно только догадываться, что же имеется в виду.
0
4089 / 1469 / 401
Регистрация: 07.08.2013
Сообщений: 3,670
30.01.2014, 08:36
попробую объяснить
1.не знаю точно (в SQL несилен) но имя таблицы и поле разделяются точкой
2. самый младший запрос выдает 1 поле имя которого Поле3
3. Средний запрос выдает 2 поля - поле3 и Формат
кстати синтаксис InStr должен быть такой InStr(1,qz1!Поле3,"@")
4. Самый старший запрос выдает два поля - Форм и Номер вот только странность Номер берется из таблицы Реестр а таблица реестр прописана в части From без объединения
Кстати в InStr опять не указано с какого символа начинать просмотр слова

вообщем надо бы пощупать, потрогать, понюхать, потыкать..................
2
 Аватар для VinniPuh
9127 / 6129 / 593
Регистрация: 27.03.2013
Сообщений: 19,972
30.01.2014, 13:40
Цитата Сообщение от snipe Посмотреть сообщение
...вообщем надо бы пощупать, потрогать, понюхать, потыкать...
Ну прям как и я, тоже желательно пощупать и потыкать, так быстрее истина находится.
наш клиент. +
0
 Аватар для Серж_87
1303 / 509 / 63
Регистрация: 09.08.2012
Сообщений: 2,056
30.01.2014, 18:43  [ТС]
Здраствуйте. Во вложении база-пример.
Объясню чтобы понятно было:
1) Есть одна таблицы
2) Итоговый результат (то что мне нужно) находится в результате выполнения запроса "Действие3"
3) Есть два запроса промежуточных - Действия1 и Действия2

Вот я и хочу сделать тройной запрос, чтобы промежуточных не было. А в таких тройных (сложных) запросах я очень слабо разбираюсь - путаюсь.
Вложения
Тип файла: rar Test.rar (31.2 Кб, 8 просмотров)
0
 Аватар для Серж_87
1303 / 509 / 63
Регистрация: 09.08.2012
Сообщений: 2,056
30.01.2014, 18:46  [ТС]
P.S. самое сложное это разделить одно поле на три в одном запросе, я делю сначала на 2, потом еще на два. Может есть функция которое может делить текст на нужное количество полей, указав лишь символ деления, в других базах (Оракл) например, такая функция есть, оч хорошая. Но сюда она не подойдет
0
Эксперт MS Access
2837 / 1378 / 216
Регистрация: 13.05.2011
Сообщений: 4,220
30.01.2014, 21:34
Лучший ответ Сообщение было отмечено Серж_87 как решение

Решение

Посмотрел свои архивы. Потделал под Ваш пример. Посмотрите. Правда надо попробовать усложнить задачу, если не три слова, а 4 и более. Буду пробовать.
Вложения
Тип файла: rar Test1.rar (28.7 Кб, 9 просмотров)
1
 Аватар для Серж_87
1303 / 509 / 63
Регистрация: 09.08.2012
Сообщений: 2,056
30.01.2014, 21:58  [ТС]
Вячеслав Я, Подскажите, а для чего в запросе на объединение двух полей есть промежуточная пустота? Соединяете ПОЛЕ+ПУСТО+ПОЛЕ
Code
1
Приветствие: [Приветствие1] & "" & [Приветствие2]
Можно было и так. Есть ли разница?
Code
1
Приветствие: [Приветствие1] & [Приветствие2]
Добавлено через 6 минут
Хмм, деля одно поля на три в итоге суммарно три кода километр получаются Сейчас попытаюсь разобраться. Еще раз спасибо, главное что работает
0
Эксперт MS Access
2837 / 1378 / 216
Регистрация: 13.05.2011
Сообщений: 4,220
30.01.2014, 22:01
Я сам теоретик слабый, но читал, что кавычки "" нужны для соединения двух полей. Если в них сделать пробел или указать другой символ, то он (пробел или символ) появится между полями (если ничего нет, то без пробела). А без него как-то и не экспериментировал.
0
Эксперт MS Access
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
30.01.2014, 22:03
Цитата Сообщение от Вячеслав Я Посмотреть сообщение
читал, что кавычки "" нужны для соединения двух полей.
Не нужны.

Цитата Сообщение от Вячеслав Я Посмотреть сообщение
сли в них сделать пробел или указать другой символ, то он (пробел или символ) появится между полями.
Это точно. Так и будет
0
30.01.2014, 22:04  [ТС]

Не по теме:

:) можно без них поля соединять, в них смысла нет в выражении выше

0
Эксперт MS Access
2837 / 1378 / 216
Регистрация: 13.05.2011
Сообщений: 4,220
30.01.2014, 22:07
Вот и хорошо. Буду знать. Честно говоря они так напрягают при записи!
0
4089 / 1469 / 401
Регистрация: 07.08.2013
Сообщений: 3,670
31.01.2014, 06:42
Лучший ответ Сообщение было отмечено Серж_87 как решение

Решение

вот
SQL
1
2
3
4
SELECT a2.Текст_Приветствия, LEFT$(a2!Временное_Поле,InStr(a2!Временное_Поле," ")-1) AS Имя, Mid$(a2!Временное_Поле,InStr(a2!Временное_Поле," ")+1) AS Отчество, a2.Доп_Поле
FROM (SELECT Mid$(a1!Приветствие_Объед,InStr(a1!Приветствие_Объед," ")+1) AS Временное_Поле, LEFT$(a1!Приветствие_Объед,InStr(a1!Приветствие_Объед," ")-1) AS Текст_Приветствия, a1.Доп_Поле
FROM (SELECT [Таблица1]![Приветствие1] & [Таблица1]![Приветствие2] AS Приветствие_Объед, Таблица1.Доп_Поле
FROM Таблица1)  AS a1) AS a2
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
31.01.2014, 06:42
Помогаю со студенческими работами здесь

Ошибка в SQL запросе!
Доброе время суток, изучаю БД, по заданию, нужно вывести фамилии всех читателей, имеющих максимальное количество книг. Структуру БД...

Ошибка в sql запросе
Помогите разобраться в чем ошибка! Только начинаю работать с php и решил сделать небольшую запись в базу данных, но когда замутили скрипт...

Ошибка в sql-запросе
При активации Query возникает ошибка "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version...

Ошибка в SQL запросе
Не работает регистрация. При не правильном вводе чего-либо выдает, а вот если ввести все правильно пишет Ошибка в SQL запросе....

Ошибка в sql запросе
К проекту привязана бд access, в ней таблица Rectbl с полями Name,Cathegory и Text. После вводаданных в текстбоксы и нажатия на кнопку...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru