0

この問題が発生しました。プロジェクトに関連する最後のタスク更新タスクを取得しようとしています。最後のbillingTimeを取得することで、この更新はどのように行われましたか。
また、設計に関する質問のCopleyがあります。

  • プロジェクトと最後に更新されたタイムフォームタスクを取得するための最良の方法は何ですか?createdOn列のフォームbillingTimeを使用する必要があります。
  • 最後に更新されたタスクを記録するために、プロジェクトテーブルに新しい列を追加する必要がありますか?

ここに画像の説明を入力してください

私のクエリ:

SELECT     p.projectID, p.projectName, t.lastUpdate, billingsTimes.userID
FROM         Tasks AS t INNER JOIN
                      Projects_tasks ON t.taskID = Projects_tasks.taskID INNER JOIN
                      Projects AS p ON Projects_tasks.projectID = p.projectID INNER JOIN
                      billingsTimes ON t.taskID = billingsTimes.taskID
GROUP BY p.projectName, p.projectID, t.lastUpdate, billingsTimes.userID
4

1 に答える 1

0

プロジェクト テーブルに新しい列を追加する必要はないと思います。2 つのテーブル間に関係が既に設定されているようです。特定のプロジェクトの最終更新時刻を取得する場合は、次を試してください。

SELECT     p.projectID, p.projectName, MAX(t.lastUpdate) as 'Last Updated Time'
FROM         Tasks AS t INNER JOIN
                      Projects_tasks ON t.taskID = Projects_tasks.taskID INNER JOIN
                      Projects AS p ON Projects_tasks.projectID = p.projectID
GROUP BY p.projectName, p.projectID

- 編集

UserId同様に表示するには、これを試してください:

SELECT     p.projectID, p.projectName, BillingsTimes.UserId, MAX(t.lastUpdate) as 'Last Updated Time'
FROM         Tasks AS t INNER JOIN
                      Projects_tasks ON t.taskID = Projects_tasks.taskID INNER JOIN
                      Projects AS p ON Projects_tasks.projectID = p.projectID INNER JOIN
                      BillingsTimes ON t.taskID = BillingsTimes.taskID
GROUP BY p.projectName, p.projectID, BillingsTimes.UserId
于 2013-01-11T19:52:54.880 に答える