Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Ошибка синтаксиса в операции JOIN в ACCESS / 6 сообщений из 6, страница 1 из 1
09.06.2018, 16:50
    #39658998
gn1710
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка синтаксиса в операции JOIN в ACCESS
Access выдает ошибку при запуске запроса "Ошибка синтаксиса в операции JOIN", помогите, плиз, найти эту самую ошибку)
В БД таблица tTransactions, в ней столбцы:
- iConstituentID
- cAmount
- iResponseID
- dDate

Задача следующая: 1)выбрать все последние записи по каждому человеку (iConstituentID) с iResponseID равным 34 - дата в этой выборке будет Datereact. 2)Дальше выбрать все последние записи по каждому человеку с iResponseID не равным 34 или 54, при том что dDate должна быть меньше Datereact - дата в этой выборке будет Datedonationbeforereact. 3)В итоге получить выборку людей с разницей между датами Datereact и Datedonationbeforereact.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
SELECT m. iConstituentID, DiffDate ((m.Datedonationbeforereact),(t.Datereact))
FROM 
(
(
SELECT tTransaction.iConstituentID, tTransaction.dDate AS Datereact, tTransaction.iResponseID, tTransaction.cAmount
FROM tTransaction
WHERE ((tTransaction.iResponseID)=34) AND ((tTransaction.cAmount)>0)
)
AS t
INNER JOIN
(
SELECT tTransaction.iConstituentID, Max(tTransaction.dDate) AS Datedonationbeforereact, tTransaction.iResponseID, tTransaction.cAmount
FROM tTransaction 
WHERE (   (  (tTransaction.iResponseID)<>34 AND (tTransaction.iResponseID)<>54) AND  (  (tTransaction.cAmount)>0))
) 
AS m

ON t.iConstituentID = m.iConstituentID
WHERE ((m.Datedonationbeforereact)<(t.Datereact));
...
Рейтинг: 0 / 0
09.06.2018, 17:14
    #39659028
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка синтаксиса в операции JOIN в ACCESS
Я вижу MAX(), но НЕ вижу GROUP BY...
...
Рейтинг: 0 / 0
09.06.2018, 17:29
    #39659037
gn1710
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка синтаксиса в операции JOIN в ACCESS
исправила:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
SELECT m. iConstituentID, m.Datedonationbeforereact, t.Datereact
FROM 
(
(
SELECT tTransaction.iConstituentID, tTransaction.dDate AS Datereact, tTransaction.iResponseID, tTransaction.cAmount
FROM tTransaction
WHERE ((tTransaction.iResponseID)=34) AND ((tTransaction.cAmount)>0)
)
AS t
INNER JOIN
(
SELECT tTransaction.iConstituentID, Max(tTransaction.dDate) AS Datedonationbeforereact, tTransaction.iResponseID, tTransaction.cAmount
FROM tTransaction 
WHERE (   (  (tTransaction.iResponseID)<>34 AND (tTransaction.iResponseID)<>54) AND  (  (tTransaction.cAmount)>0))
GROUP BY tTransaction.iConstituentID
) 
AS m

ON t.iConstituentID = m.iConstituentID;
...
Рейтинг: 0 / 0
09.06.2018, 17:57
    #39659046
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка синтаксиса в операции JOIN в ACCESS
gn1710 , лучше сразу БД приложите. Почищенную (но не от ошибки) и заархивированную.
...
Рейтинг: 0 / 0
09.06.2018, 18:53
    #39659059
Игортан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка синтаксиса в операции JOIN в ACCESS
Akina,

Да скобка открыта лишняя, не?
После первого From
...
Рейтинг: 0 / 0
12.06.2018, 14:27
    #39659706
studieren
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка синтаксиса в операции JOIN в ACCESS
Код: 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.
SELECT m.iConstituentID, m.Datedonationbeforereact, t.Datereact
FROM
    (SELECT
        tTransaction.iConstituentID,
        tTransaction.dDate AS Datereact,
        tTransaction.iResponseID,
        tTransaction.cAmount
    FROM tTransaction
    WHERE
        tTransaction.iResponseID=34 AND
        tTransaction.cAmount>0) AS t
            INNER JOIN
    (SELECT
        tTransaction.iConstituentID,
        Max(tTransaction.dDate) AS Datedonationbeforereact,
        tTransaction.iResponseID,
        tTransaction.cAmount
    FROM tTransaction 
    WHERE
        tTransaction.iResponseID<>34 AND
        tTransaction.iResponseID<>54 AND
        tTransaction.cAmount>0
    GROUP BY tTransaction.iConstituentID) AS m
        ON t.iConstituentID = m.iConstituentID;
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Ошибка синтаксиса в операции JOIN в ACCESS / 6 сообщений из 6, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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