在三个访问表之间进行查询不会返回值

问题描述 投票:0回答:1

enter image description hereI有三个Access表。我试图根据日期进行查询,但查询不返回任何值。

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

sql ms-access ms-access-2010
1个回答
0
投票

好像你想要子查询,而不是连接。 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;
© www.soinside.com 2019 - 2024. All rights reserved.