Выполнение запроса между тремя таблицами доступа не возвращает значение - PullRequest
0 голосов
/ 29 августа 2018

введите описание изображения здесь enter image description here У меня есть три таблицы доступа. Я пытался сделать запрос зависимым от даты, но запрос не возвращает никакого значения.

SELECT Sum(income2.mony) AS SumOfmony, Sum(outcome.mony) AS SumOfmony1, Sum(PT.PT_Paid) AS SumOfPT_Paid, Sum(PT.PT_Remain) AS SumOfPT_Remain, PT.PT_Date
FROM (PT INNER JOIN income2 ON PT.PT_Date = income2.dat) INNER JOIN outcome ON PT.PT_Date = outcome.[dat&time]
GROUP BY PT.PT_Date;

enter image description here

1 Ответ

0 голосов
/ 30 августа 2018

Похоже, вы хотите подзапросы, а не присоединения. INNER JOIN не возвращает записей о несоответствующих результатах.

Тогда возникает дополнительная проблема: даты могут хранить доли секунд. Сравнение дат на равенство приводит к проблемам в Access (см. this для примера)

Попробуйте запросить внешние таблицы, используя следующие подзапросы:

SELECT Sum(income2.mony) FROM income2 WHERE DateDiff("s",PT.PT_Date, income2.dat) = 0
SELECT Sum(outcome.mony) FROM outcome WHERE DateDiff("s",PT.PT_Date, outcome.[dat&time]) = 0

Реализован:

SELECT
    (SELECT Sum(income2.mony) FROM income2 WHERE DateDiff("s",PT.PT_Date, income2.dat) = 0) As SumOfmony,
    (SELECT Sum(outcome.mony) FROM outcome WHERE DateDiff("s",PT.PT_Date, outcome.[dat&time]) = 0) AS SumOfmony1,
    Sum(PT.PT_Paid) AS SumOfPT_Paid, Sum(PT.PT_Remain) AS SumOfPT_Remain, PT.PT_Dat
FROM PT
GROUP BY PT.PT_Date;
...