0

我的表 IncomingLetter 有一个表 Department 的外键,它有一个ID和一个 column 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 访问中使用此查询可能很重要。

4

1 回答 1

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字段,这没有意义。

在这些场景中,您需要告诉数据库引擎两件事:

  • 连接了哪些表 -IncomingLetterDepartments这种情况下(inner join部分)
  • 它们是如何连接的 - 通过分别设置它们的Assigned_To_DepartmentID字段(on ...部分
于 2012-12-05T16:39:19.310 回答