我正在尝试使用 MS Access 数据库中一个表的两列条件的 sql 内连接,而且我只想要一个 sql 查询。
请指导我
谢谢
SELECT PERSON.IDPERSON, MASTERPERSON.PERSONNAME, PERSON.[DATE], MASTERPERSON.LOCATION, FORMAT(PERSON.DATE,'dddd') AS DAYS
FROM PERSON INNER JOIN MASTERPERSON ON PERSON.IDPERSON = MASTERPERSON.IDPERSON;
以上 Sql 的结果:
身份识别者 | 人名 | 日期 | 地点 | 天数 |
---|---|---|---|---|
1000 | 雷伊 | 24 年 5 月 29 日 | A | 周三 |
1000 | 雷伊 | 24 年 5 月 30 日 | A | 星期四 |
1001 | 迈克尔 | 24 年 5 月 29 日 | B | 周三 |
1001 | 迈克尔 | 24 年 5 月 30 日 | B | 星期四 |
桌子
PERSON
身份识别者 | 日期 |
---|---|
1000 | 24 年 5 月 29 日 |
1000 | 24 年 5 月 30 日 |
1001 | 24 年 5 月 29 日 |
1001 | 24 年 5 月 30 日 |
桌子
MASTERPERSON
身份识别者 | 人名 | 地点 |
---|---|---|
1000 | 雷伊 | A |
1001 | 迈克尔 | B |
桌子
PERSONDAYS
地点 | 天数 | 状态 |
---|---|---|
A | 周三 | A10 |
A | 星期四 | A27 |
B | 周三 | B18 |
B | 星期四 | B29 |
想要的结果
身份识别者 | 人名 | 日期 | 地点 | 天数 | 状态 |
---|---|---|---|---|---|
1000 | 雷伊 | 24 年 5 月 29 日 | A | 周三 | A10 |
1000 | 雷伊 | 24 年 5 月 30 日 | A | 星期四 | A27 |
1001 | 迈克尔 | 24 年 5 月 29 日 | B | 周三 | B18 |
1001 | 迈克尔 | 24 年 5 月 30 日 | B | 星期四 | B29 |
Access 对于使用带有多个 JOIN 子句的括号很挑剔。使用查询设计器获得正确的语法。但是,无法直接 JOIN 到设计视图中的计算值。获取带有正确括号的多个连接子句,然后切换到 SQL 视图添加 AND
pd.DAYS = FORMAT(PERSON.DATE, 'dddd')
,但永远无法在设计中查看。
SELECT Person.IDPerson, MasterPerson.PersonName, Person.Date, MasterPerson.Location, PersonDays.Days, PersonDays.Status
FROM PersonDays INNER JOIN (Person INNER JOIN MasterPerson
ON Person.IDPerson = MasterPerson.IDPerson)
ON PersonDays.Location = MasterPerson.Location AND PersonDays.DAYS = FORMAT(PERSON.DATE, 'dddd');
否则,构建一个执行
Format([Date],'dddd')
计算的查询对象,然后在另一个查询中使用该查询,以便设计视图能够显示连接。