1

私のデータベースには 3 つのテーブルがあり、

  • Studentdataカラム付きstudentid , studentname
  • Assessmentdataカラム付きstudentid, attemptedondate
  • Activitydataカラム付きstudentid, date

また、各テーブル行は現在のタイムスタンプで毎日更新されます。

識別に助けが必要です。Mostrecentdate列は、これらの列の両方を比較した後、2 つの異なるテーブルと 2 つの異なる列からattemptedondate日付を取得する必要があります。date

期待される出力は、

Studentid   studentname      mostrecentdate
 1           abc            2013-06-01 12:05
 2           def            2013-05-02 02:03

私の現在のクエリは次のとおりです。

select 
    S.StudentId, S.StudentAccountName, 
    Max(D.attemptedondate, A.date) as MOSTRECENTTIME 
from 
    activitydata A
join 
    Studentdata S on A.StudentId = s.StudentID
join 
    Assessmentdata D on S.StudentID = D.StudentID
group by 
    S.StudentId, S.StudentAccountName
order by 
    MOSTRECENTTIME desc
4

1 に答える 1

2

使用できるはずですCASE

select S.StudentId,
    S.StudentAccountName,
    CASE WHEN Max(D.attemptedondate) >= Max(A.date) THEN Max(D.attemptedondate) 
         ELSE Max(A.date) END
     as MOSTRECENTTIME 
from activitydata A
    join Studentdata S on A.StudentId=s.StudentID
    join Assessmentdata D on S. StudentID =D. StudentID
group by S.StudentId,
    S.StudentAccountName
于 2013-06-07T03:12:52.193 に答える