2012-06-25 77 views
0

我有一張桌子和一個關係如何舊的條目有唯一的ID過濾掉SQL查詢的

我也許10意見書,但是當我查詢數據庫,我只希望得到那些具有獨特CaseId和一個返回應該是最新的日期。是否有可能(並建議)在單個查詢中做到這一點,或者我應該在我的asp.net代碼中進行過濾,以獲取數據?

編輯:新圖片

enter image description here enter image description here

在這裏你可以看到我展示同一案件的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; 
+1

主題可以有多個提交。你不是所有提交的都是獨一無二的?我錯過了一些東西,你能否詳述一下。 –

+0

'我只想讓那些擁有獨特CaseId的人能詳細說明這一點嗎? – Kshitij

+0

增加了一些更多的圖像和文字來澄清 – Mech0z

回答

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; 
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