0

似たような投稿があることは知っていますが、自分のクエリでそれらのいずれかを使用しようとすると、機能しません。

基本的に、SQLビューを使用してACCESSでクエリする3つのテーブルがあります。

最初は、この例では2だけでそれを実行しようとしています。

tb1名:タスク

必要なtb1フィールド:タスクIDタスクタイトルプロジェクトID(これは、最後にプロジェクトタイトルを取得するために使用されます。つまり、上記の3番目のテーブルです)

tb2名:タスクノート

必要なtb2フィールド:タスクノートIDタスクノート日付タスクノート

デザインビューを使用して起こっていたのは、たとえば、タスクテーブルの1つのタスクに関連する3つのメモがある場合、3つのタスクメモすべてが一覧表示されていたということです。

私がやりたいのは、最後に入力したタスクノートのみを[タスクノートID]または[タスクノート日付]で表示することです。

ここからのヘルプから構築された、私が今残しているのは、次のSQLステートメントです。

SELECT 

t.[Task ID], 
t.[Task Title], 
t.[Project ID],
tn.*

FROM
Tasks t

INNER JOIN [Task Notes] tn ON t.[Task ID] = tn.[Task ID]

WHERE tn.[Task ID] = 
  (SELECT max(tn.[Task Note Date]) FROM tn where tn[Task ID] = t.[Task ID])
;

これで構文エラーが発生しますが、以前の化身も私を立ち往生させています。

私は通常ACCESSの外で開発し、php / aspでは問題ありませんが、ACCESSでは初心者です。

どんな助けでも大歓迎です

乾杯

マシュー

4

2 に答える 2

1

このようなものを試してください

SELECT t.[Task ID], 
       t.[Task Title], 
       t.[Project ID],
       tn.*    
  FROM Tasks t 
       INNER JOIN
       (
          SELECT [Task ID], 
                 MAX([Task Note Date]) MaxDate
            FROM [Task Notes] 
           GROUP 
              BY [Task ID]
       ) TaskNoteIDS 
          ON t.[Task ID] = TaskNoteIDS.[Task ID] 
       INNER JOIN [Task Notes] tn 
          ON TaskNoteIDS.[Task ID] = tn.[Task ID]
             AND TaskNoteIDS.MaxDate = [Task Notes].[Task Note Date];
于 2009-07-21T14:45:19.927 に答える
0

試す:

FROM tasks AS t
FROM [other table] AS tn

これは、MSAccessにある「SQLフレーバーバリアント」です...

于 2009-07-21T14:54:43.000 に答える