0

私はテーブルと関係を持っています

おそらく10件の提出物がありますが、データベースにクエリを実行するときに、Unique CaseIdを持つものだけを取得したいので、返されるものは最新の日付のものでなければなりません。単一のクエリでこれを行うことは可能ですか(そしてアドバイスされます)、またはデータをフェッチする場所の背後にあるasp.netsコードでフィルタリングを行う必要がありますか?

編集:新しい画像

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

ここでは、同じケースIDを持つ多くのアイテムを表示していることがわかります。最新のアイテムのみを表示したい(日付に基づく)

これは私の現在のSQLクエリです

SELECT Submission.Id, Date, center.Name as CenterName, center.Id as CenterId, subject.Name as SubjectName, subject.Id as SubjectId, EmployeeName, Reason, Description, Explanation, Done, ChiefLevel, Action, CaseId 
                    FROM Submission, subject, center
                    WHERE center.Id=CenterId AND subject.Id=SubjectId
                    ORDER BY Date DESC;
4

2 に答える 2

2
SELECT caseid 
FROM 
( 
SELECT caseid, max(date) AS max_date 
FROM submission 
GROUP BY caseid 
) a 
JOIN subject t ON a.subjectid=t.id
于 2012-06-25T09:36:37.487 に答える
0

私の質問はこれで終わった

SELECT s.Id, s.Date, c.Name as CenterName, c.Id as CenterId, su.Name as SubjectName, su.Id as SubjectId, s.EmployeeName, s.Reason, s.Description, s.Explanation, s.Done, s.ChiefLevel, s.Action, s.CaseId
                    FROM submission as s
                      INNER JOIN 
                      ( 
                        SELECT CaseId, MAX(Date) AS MaxDateTime 
                          FROM submission 
                        GROUP BY CaseId 
                      ) as groupeds 
                      ON  s.CaseId = groupeds.CaseId 
                      AND s.`Date` = groupeds.MaxDateTime 
                      INNER JOIN
                      (
                        SELECT Id, Name 
                          FROM subject
                      ) as su 
                      ON su.Id=SubjectId
                      INNER JOIN 
                      (
                        SELECT Id, Name 
                          FROM center
                      ) as c 
                      ON c.Id=CenterId;
于 2012-06-27T14:49:58.933 に答える