powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Ошибка синтаксиса в операции JOIN в ACCESS
6 сообщений из 6, страница 1 из 1
Ошибка синтаксиса в операции JOIN в ACCESS
    #39658998
gn1710
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
Ошибка синтаксиса в операции JOIN в ACCESS
    #39659028
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вижу MAX(), но НЕ вижу GROUP BY...
...
Рейтинг: 0 / 0
Ошибка синтаксиса в операции JOIN в ACCESS
    #39659037
gn1710
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
исправила:

Код: 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
Ошибка синтаксиса в операции JOIN в ACCESS
    #39659046
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gn1710 , лучше сразу БД приложите. Почищенную (но не от ошибки) и заархивированную.
...
Рейтинг: 0 / 0
Ошибка синтаксиса в операции JOIN в ACCESS
    #39659059
Игортан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina,

Да скобка открыта лишняя, не?
После первого From
...
Рейтинг: 0 / 0
Ошибка синтаксиса в операции JOIN в ACCESS
    #39659706
studieren
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Ошибка синтаксиса в операции JOIN в ACCESS
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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