2016-05-08 11 views
0

アクセス2003年に書かれたPATテストデータベースを更新しようとしています。私はHTMLスタイリングとアクティブX接続を使用してアクセスデータベースからデータを取得しています。私はコーディングに新しく、基本的にGoogleを介して私の答えのほとんどを見つける。現在、私は、アプライアンスの最終テスト日を見つけるSQLクエリーの書き方について困惑しています。データベース内の情報は4つのデータベーステーブルにあります。 (テーブルのフォーマットには申し訳ありません)。4つのリンクテーブルを持つSQLの最新の日付

Appliance_Details

+-------+------------------+----------+------------+ 
| PATID | ShortDescription | Location | Department | 
+-------+------------------+----------+------------+ 
| FD110 |    1 | Room 125 |   1 | 
| FD113 |    2 | Room 125 |   1 | 
| FD114 |    3 | Room 125 |   1 | 
+-------+------------------+----------+------------+ 

Appliance_Description

+--------+----------------+ 
| Number | AppDescription | 
+--------+----------------+ 
|  1 | Microwave  | 
|  2 | Food Steamer | 
|  3 | Smoothie Maker | 
+--------+----------------+ 

Department_List

+--------+-------------------+ 
| Number | Department  | 
+--------+-------------------+ 
|  1 | Food Technology | 
|  2 | Art    | 
|  3 | Humanities  | 
+--------+-------------------+ 

Test_Results

+-------+---------+----------+ 
| PATID | AppPass | TestDate | 
+-------+---------+----------+ 
| FD110 | Pass | 23/04/15 | 
| FD110 | Pass | 04/04/14 | 
| FD110 | Pass | 10/04/13 | 
| FD113 | Pass | 23/04/15 | 
| FD113 | Fail | 04/04/14 | 
| FD113 | Pass | 10/04/13 | 
| FD114 | Pass | 23/04/15 | 
| FD114 | Pass | 04/04/14 | 
| FD114 | Pass | 10/04/13 | 
+-------+---------+----------+ 
私がこれまで持って

SQLクエリは次のとおりです。 - 私は実行するSQLクエリは、最新の日付を返すことで欲しい結果に

+------------+-------+----------------+----------+--------+----------+ 
| Department | PATID |  Type  | Location | Result | TestDate | 
+------------+-------+----------------+----------+--------+----------+ 
| Design  | FD110 | Microwave  | Room 125 | Pass | 23/04/15 | 
| Design  | FD110 | Microwave  | Room 125 | Pass | 04/04/14 | 
| Design  | FD110 | Microwave  | Room 125 | Pass | 10/04/13 | 
| Design  | FD113 | Food Steamer | Room 125 | Pass | 23/04/15 | 
| Design  | FD113 | Food Steamer | Room 125 | Fail | 04/04/14 | 
| Design  | FD113 | Food Steamer | Room 125 | Pass | 10/04/13 | 
| Design  | FD114 | Smoothie Maker | Room 125 | Pass | 23/04/15 | 
| Design  | FD114 | Smoothie Maker | Room 125 | Pass | 04/04/14 | 
| Design  | FD114 | Smoothie Maker | Room 125 | Pass | 10/04/13 | 
+------------+-------+----------------+----------+--------+----------+ 

を与える

SELECT l.department, d.PATID AS Appliance, AppDescription As Type, Location, AppPass AS Result, TestDate 
FROM (Department_List AS l INNER JOIN (Appliance_Description AS a INNER JOIN Appliance_Details AS d ON a.Number = d.ShortDescription) ON l.Number = d.Department) INNER JOIN Test_Results AS t 
ON d.PATID = t.PATID 
ORDER BY l.department, d.PATID 

。私はmax関数を使用しなければならないことを知っていますが、私はこのSQLクエリを持っていますが、私は上記のSQLクエリステートメントにどのように参加するのかは分かりません。

+-------------+---------+------------------+------------+----------+-----------------+ 
| Department | PATID |  Type  | Location | Result | LastTestDate | 
+-------------+---------+------------------+------------+----------+-----------------+ 
| Design  | FD110 | Microwave  | Room 125 | Pass | 23/04/15  | 
| Design  | FD113 | Food Steamer | Room 125 | Pass | 23/04/15  | 
| Design  | FD114 | Smoothie Maker | Room 125 | Pass | 23/04/15  | 
+-------------+---------+------------------+------------+----------+-----------------+ 

答えて

0

以下のように

SELECT MAX(t.TestDate) AS LastTestDate, t.PATID FROM Test_Results AS t GROUP BY t.PATID 

これは私に結果を与える必要があります(以下の例を参照)GROUP BYMAXを使用する必要があります。 SELECT/GROUP BYから列を追加または削除すると、MAXは異なるレベルで動作することができます。特定の場所での最終テスト日など

SELECT l.department, 
    d.PATID AS Appliance, 
    AppDescription As Type, 
    Location, 
    AppPass AS Result, 
    MAX(t.TestDate) AS LastTestDate 
FROM (Department_List AS l INNER JOIN (Appliance_Description AS a INNER JOIN Appliance_Details AS d ON a.Number = d.ShortDescription) ON l.Number = d.Department) 
INNER JOIN Test_Results AS t ON d.PATID = t.PATID 
GROUP BY l.department, d.PATID, AppDescription, Location, AppPass 
ORDER BY l.department, d.PATID 
+0

ありがとうございました。 2番目のSELECTクエリに参加しようとしていました。私はMAX(t.TestDate)をSELECTに移動させると考えたかもしれませんが、選択したすべての項目をグループ化する必要があることは決してありませんでした。私は先週、私を困らせました。 –

関連する問題