2016-09-28 5 views
-2

テーブルstudentに大量のレコードがあります。学生のために私は他のテーブルactivityactionを持っています。条件によっては3つのテーブルからデータを取得する

私は、テーブルにactivityテーブルと複数のアクションで複数のアクティビティを持っています。

私は活動や行動を取った生徒の記録を取りたいと思っています。そして、アクティビティテーブルからmax(activity_date)をフェッチし、すべての学生のためのmax(action_date)

enter image description here

+0

あなたのテーブル構造といくつかのデータを投稿、あなたが得る可能性があります回答。 –

+0

学生の表は、このようなものです: - 1. \t学生 STUDENT_ID \t•\t•Student_name \t•アクティビティ 2. \tクラス\t•同上 STUDENT_ID \t•Activity_date \t•Activity_by \t• 3. \tアクション \t Id \t Action_by \t Actio n_date •\t Student_id •\t Action_desc – Aditi

+0

[質問する**](http://stackoverflow.com/help/how-to-ask) – 1000111

答えて

0

の行動データをフェッチ私は、SQLの下に、あなたの役に立つと思います

select t1.student_id, t1.student_name, t1.class, t2.Last_activity_date, t3.Last_action_date, t3.Action_desc 

(select student_id, student_name, class from student) as t1 join 

(select student_id, max(activity_date) as Last_activity_date group by student_id) as t2 on t2.student_id =t1.student_id join 

select student_id, max(actiondate) as Last_action_date, Action_desc group by student_id) as t3 on t3.student_id =t1.student_id 
order by 1 
+0

上記のクエリでエラーが発生しました "フィールドに 'student_id'列リストがあいまいです " – Aditi

+0

だから私はこれを書いた...それはうまくいく................................... ........................ t1としてstudentからのt1.student_id、max(activity_date)、max(action_date)を選択します。 t1にt2として結合アクティビティを残しました。 .student_id = t2.student_idは、参加アクションをt3として残しました。 on t1.student_id = t3.student_id グループby t1.student_id – Aditi

+0

@Aditi修正した私の答えを見てください。私の答えを受け入れることができますか? –

関連する問題