我有一张能力表。我把它变成了父子关系,所以例如,驾驶执照是一行,汽车驾驶执照是另一行,父级是“驾驶执照”。
这可以在 MS-Access 中、报告中或其他什么地方打印吗?像树一样打印,或者像这样的列表:
- 驾照
- 驾驶执照下的汽车驾驶执照
该表有 5 列,选择查询如下所示:
SELECT Kompetenser.[ID], Kompetenser.[created_date], Kompetenser.[namn], Kompetenser.[Metakompetens], Kompetenser.[beskrivning] FROM Kompetenser;
其中 Kompetenser.[Metakompetens] 是指同一张表的“数字”(瑞典语“Tal”)。
我找到了一个帖子是同一个问题,并且有答案,但是我无法运行 sql:
https://stackoverflow.com/a/45797072/5730322
(虽然它给出了一个列表,其中的行以父项开头,但没关系)
我试着做一个查询:
SELECT
L0.namn AS Cat0,
L1.namn AS Cat1,
L2.namn AS Cat2,
L3.namn AS Cat3,
L4.namn AS Cat4,
L5.namn AS Cat5,
L6.namn AS Cat6,
L7.namn AS Cat7
FROM
Kompetenser AS L0
LEFT JOIN Kompetenser AS L1
ON L0.ID=L1.[Metakompetens]
LEFT JOIN AS L2
ON L1.ID = L2.Metakompetens
LEFT JOIN Kompetenser AS L3
ON L2.ID = L3.Metakompetens
LEFT JOIN Kompetenser AS L4
ON L3.ID = L4.Metakompetens
LEFT JOIN Kompetenser AS L5
ON L4.ID = L5.Metakompetens
LEFT JOIN Kompetenser AS L6
ON L5.ID = L6.Metakompetens
LEFT JOIN Kompetenser AS L7
ON L6.ID = L7.Metakompetens
WHERE isnull(L0.Metakompetens)
它说(译自瑞典语):
语法错误(缺少运算符)我查询 'L0.ID=L1.[Metakompetens] ... 到查询结尾
所以问题是如何修复我的sql。
MS Access 连接语法很特殊。当您的查询需要多个时,您必须开始使用括号。更具体地说,为了介绍下一个连接,您需要将上一个连接括在括号中。例如,这是两个连接的样子:
这是添加第三个连接后您的查询需要更改的方式:
继续以这种方式根据需要添加尽可能多的括号,以涵盖查询所需的所有连接。
这与连接类型(左、右、内)无关。