我的表IncomingLetter有一个表部门的外键,它有一个ID
和一列Short_Name
。
我正在使用此查询来计算分配给部门的传入字母。
SELECT COUNT(DocumentNumber) AS TotalNumberIncomingLetters
FROM IncomingLetter
WHERE Assigned_To_Department=1;
虽然这有效,但我希望根据短名称进行查询,而不是基于ID。
SELECT COUNT(DocumentNumber) AS TotalNumberIncomingLetters
FROM IncomingLetter
WHERE Assigned_To_Department.Short_Name="My Department Name";
这不起作用,而我发现使用此语法的示例。但是,重要的是要注意,我在MS访问中使用此查询。
答案 0 :(得分:2)
你应该使用
SELECT COUNT(il.DocumentNumber) AS TotalNumberIncomingLetters
FROM IncomingLetter il
INNER JOIN Department d on d.ID = il.Assigned_To_Department
WHERE d.Short_Name="My Department Name";
“我的部门名称”文本实际存储在Departments
表中,只有数字(1)存储在IncomingLetter
表格的Assigned_To_Department
字段中。<登记/>
要求Assigned_To_Department.Short_Name
基本上要求数字1得到Short_Name
字段,这没有意义。
在这些场景中,您需要告诉数据库引擎两件事:
IncomingLetter
和Departments
(inner join
部分)Assigned_To_Department
和ID
字段(on ...
部分