0

ID私のテーブルIncomingLetterには、と列を持つテーブルDepartmentへの外部キーがあります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";

これは機能しませんが、この構文を使用している例を見つけました。ただし、MSAccessでこのクエリを使用していることに注意することがおそらく重要です。

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";

「My Department Name」テキストは実際にDepartmentsテーブルに格納され、番号 (1) のみがIncomingLetterテーブルのフィールドに格納されますAssigned_To_Department。基本的に尋ねると、数字の 1 にそのフィールドを取得するように求められますが
、これは意味がありません。Assigned_To_Department.Short_NameShort_Name

これらのシナリオでは、データベース エンジンに 2 つのことを伝える必要があります。

  • どのテーブルが接続されているか -IncomingLetterこのDepartments場合は (inner joinパーツ)
  • それらがどのように接続されているか -フィールドAssigned_To_DepartmentIDフィールドをそれぞれ設定することによって (on ...パート
于 2012-12-05T16:39:19.310 に答える