选择每个id的最大ID

时间:2014-02-08 00:53:08

标签: sql sql-server-2012 max

我有两个表:tbComment和tbCommentStatus:

**tbComment**
CommentID     IsLocked
1             0      
2             0
3             1
4             0
5             1

**tbCommentStatus**
CommentStatusID  CommentID   StatusTypeID
105              1           1                
106              1           4                
107              2           1                
108              3           1               
109              3           4
110              4           1 
112              5           1
112              5           4

我想返回每个CommentID的最高CommentStatusID数据集的CommentIDs,其中StatusTypeID = 4且IsLocked = 1.

基本上,在这里我会返回CommentIDs:3,5因为它们的最高CommentStatusID有一个StatusTypeID = 4而tbComment.IsLocked = 1

伙计,我希望这是有道理的。如果不是,我可以澄清。 谢谢!

1 个答案:

答案 0 :(得分:1)

尝试以下查询。

SELECT c.CommentID, MAX(cs.CommentStatusID) MaxCommentStatusID  
FROM   tbComment c
       JOIN tbCommentStatus cs ON c.CommentID = cs.CommentID
WHERE  c.IsLocked = 1
AND    cs.StatusTypeID = 4
GROUP BY c.CommentID