powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Не проходит запрос в Access 2016
17 сообщений из 17, страница 1 из 1
Не проходит запрос в Access 2016
    #39634497
AntonSol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
При запросе в Access 2016, наблюдаю сообщение "Ошибка синтаксиса в предложении FROM". Вот такой запрос:

Код: sql
1.
2.
3.
4.
5.
6.
SELECT Table1.indexObject, Table1.ObjectNames, table2.measureCommFromTab, table3.izmerenije, max(table3.datetimeMess)
FROM Table1, table2, table3
ON (table2.keyID = table3.measureComm_id) and (Table1.keyID = table3.indexObjectsTab_id)
WHERE table2.keyID>0 And indexObject In (55296,	55226)
GROUP BY table2.measureCommFromTab, Table1.indexObject
ORDER BY Table1.indexObject



Подскажите, в чем может быть ошибка? Есть нюансы при использовании Access? Дело в том, что этот же запрос, в SQLite нормально работает...
Возможно необходимо прописать Джоин?
...
Рейтинг: 0 / 0
Не проходит запрос в Access 2016
    #39634498
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Предложение ON не может существовать без предложения JOIN , которого в запросе нет в принципе.
Либо замените картезианку на JOIN, либо переместите условия во WHERE.
...
Рейтинг: 0 / 0
Не проходит запрос в Access 2016
    #39634566
AntonSol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пробовал изменять строку FORM:
Код: plsql
1.
FROM Table1, table2 JOIN table3 


Все равно в Access наблюдаю, ту же саму ошибку, хотя в SQLite работает и с Джойном...
Так же пробовал переносить во WHERE:
Код: sql
1.
2.
3.
4.
5.
6.
SELECT Table1.indexObject, Table1.ObjectNames, table2.measureCommFromTab, table3.izmerenije, max(table3.datetimeMess)
FROM Table1, table2, table3
WHERE   (table2.keyID = table3.measureComm_id) and (Table1.keyID = table3.indexObjectsTab_id) and
table2.keyID>0 And indexObject In (55296, 55226)
GROUP BY table2.measureCommFromTab, Table1.indexObject
ORDER BY Table1.indexObject


Появляется уже другая ошибка: "Ваш запрос не содержит выражение "ObjectNames".
При этом во всех трех видах запроса, он нормально обрабатывается в SQLite, а в Access, нет.
Подскажите пожалуйста, а это с чем связано? То есть почему в SQLite запрос работает, а в Access нет? Это особенность Access? Или я составил запрос не по стандарту SQL ?
...
Рейтинг: 0 / 0
Не проходит запрос в Access 2016
    #39634586
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonSolВсе равно в Access наблюдаю, ту же саму ошибкуНу ды - это вообще получается смешение картезианки и джойна. Да плюс неопределённость порядка сканирования. В общем, только хуже стало.
AntonSolПоявляется уже другая ошибка: "Ваш запрос не содержит выражение "ObjectNames".Это полсообщения. А зря - во второй половине объясняется, в чём дурь.
AntonSolпочему в SQLite запрос работаетКак и MySQL, так и SQLite допускает отклонение от стандарта в части расширения операции группировки, несмотря на недетерминированность результата. А вот Access такого отклонения не допускает.
...
Рейтинг: 0 / 0
Не проходит запрос в Access 2016
    #39634598
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonSol,
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
SELECT
    Table1.indexObject       ,
    Table1.ObjectNames       ,
    table2.measureCommFromTab,
    table3.izmerenije        ,
    Max(table3.datetimeMess) AS MaxDatetimeMess
FROM
    Table1
    INNER JOIN
        (table2
        INNER JOIN
            table3
            ON
                table2.keyID = table3.measureComm_id)
        ON
            Table1.keyID = table3.measureComm_id
WHERE
    table2.keyID>0
    And Table1.indexObject In (55296,
                               55226)
GROUP BY
    Table1.indexObject       ,
    Table1.ObjectNames       ,
    table2.measureCommFromTab,
    table3.izmerenije
ORDER BY
    Table1.indexObject

...
Рейтинг: 0 / 0
Не проходит запрос в Access 2016
    #39634601
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonSol, иногда надо смотреть документацию
...
Рейтинг: 0 / 0
Не проходит запрос в Access 2016
    #39634999
AntonSol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AkinaНу ды - это вообще получается смешение картезианки и джойна.
Что такое "картезианки" ?
...
Рейтинг: 0 / 0
Не проходит запрос в Access 2016
    #39635001
AntonSol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ПанургAntonSol,
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
SELECT
    Table1.indexObject       ,
    Table1.ObjectNames       ,
    table2.measureCommFromTab,
    table3.izmerenije        ,
    Max(table3.datetimeMess) AS MaxDatetimeMess
FROM
    Table1
    INNER JOIN
        (table2
        INNER JOIN
            table3
            ON
                table2.keyID = table3.measureComm_id)
        ON
            Table1.keyID = table3.measureComm_id
WHERE
    table2.keyID>0
    And Table1.indexObject In (55296,
                               55226)
GROUP BY
    Table1.indexObject       ,
    Table1.ObjectNames       ,
    table2.measureCommFromTab,
    table3.izmerenije
ORDER BY
    Table1.indexObject



Спасибо конечно, но после выполнения такого запроса, Access просит ввести значение table3.izmerenije. Даже не знаю почему, вроде прописано оно...
...
Рейтинг: 0 / 0
Не проходит запрос в Access 2016
    #39635007
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonSolAccess просит ввести значение table3.izmerenije. Даже не знаю почему, вроде прописано оно...а с написанием всё точно? Там буквы все те же?
...
Рейтинг: 0 / 0
Не проходит запрос в Access 2016
    #39635009
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonSolЧто такое "картезианки" ?автор имел ввиду декартово соединение.
...
Рейтинг: 0 / 0
Не проходит запрос в Access 2016
    #39635028
AntonSol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ПанургAntonSolAccess просит ввести значение table3.izmerenije. Даже не знаю почему, вроде прописано оно...а с написанием всё точно? Там буквы все те же?

Да действительно, ошибка закралась, исправил, запрос отработал. Но только не так как хотелось.
Так как Access выбрал все даты, а необходимо выбрать только последнюю дату по каждому индексу...
Как то я раньше в Access это реализовывал, скорее всего при помощи VB, похоже и в этот раз придется :(
Все равно не понимаю, почему в SQLite все работает, а здесь нет:(
...
Рейтинг: 0 / 0
Не проходит запрос в Access 2016
    #39635036
DarkMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonSolВсе равно не понимаю, почему в SQLite все работает, а здесь нет:(
Если Вам так сильно интересно, почитайте литературу про стандарты SQL и где и какой стандат используется.
...
Рейтинг: 0 / 0
Не проходит запрос в Access 2016
    #39635087
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonSolДа действительно, ошибка закралась, исправил, запрос отработал. Но только не так как хотелось.
Так как Access выбрал все даты, а необходимо выбрать только последнюю дату по каждому индексу...
Для начала надо ознакомится с рекомендациями по ссылке
РЕКОМЕНДАЦИИ по публикации сообщений (ЧИТАЙТЕ FAQ, а также...) Особенно обратить внимание на пункт 13

AntonSolВсе равно не понимаю, почему в SQLite все работает, а здесь нет:(Потому что документацию надо читать.
...
Рейтинг: 0 / 0
Не проходит запрос в Access 2016
    #39635107
AntonSol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хорошо, все почитаю обязательно.
А пока вот скину тестовую базу(зря составлял что ли:)) ), может кому не будь захочется помочь:)
Задача там такая, составить запрос на выборку данных из Table3, полей indexObjectsTab_id (точнее привязанного значения из другой таблицы), measureComm_id (точнее привязанного значения из другой таблицы), izmerenije, datetimeMess. Причем необходимо, что бы в выборке были только самые последние даты каждого indexObjectsTab_id и measureComm_id.

https://yadi.sk/d/8LDRSO8n3Uhmro
...
Рейтинг: 0 / 0
Не проходит запрос в Access 2016
    #39635116
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonSolЗадача там такая
Элементарная же ж задача... решается или в два запроса, или можно объединить...
...
Рейтинг: 0 / 0
Не проходит запрос в Access 2016
    #39635179
AntonSol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AkinaAntonSolЗадача там такая
Элементарная же ж задача... решается или в два запроса, или можно объединить...

Так то я умею, необходимо выбрать каждый параметр measureCommFromTab, по каждому индексу, только за последнюю дату(с учетом времени). Для понимания, я подчеркнул, то что не должно попасть в отчет и стрелкой указал, строку которая должна остаться. (Казань и Киров естественно тоже должна остаться... )

...
Рейтинг: 0 / 0
Не проходит запрос в Access 2016
    #39635211
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonSol,

Код: sql
1.
...WHERE table3.datetimeMess=DMax("datetimeMess","table3","measureComm_id=" & table2.keyID & " AND indexObjectsTab_id=" & Table1.keyID)...
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Не проходит запрос в Access 2016
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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