如何在SQL连接和ASC和限制记录之后放入条件?

时间:2017-12-10 02:37:14

标签: sql-server database hibernate join

我有两个SQL表:表(A)和表(B)。表(A)匹配表(B)中的多个记录。我成功检索了记录列表。并使用表(B),'revisionDate'列进行排序并仅采用最新记录。

Select  TOP(1) *
from   A
inner JOIN B
    ON  A.id = B.[occasion]
where
    A.id ='136002' and
    A.[prescribedTime] >='2017-12-11 20:00:00.000'
ORDER BY versioningInformation_createdDateTime ASC 

但我想仅在表“B”状态列包含数据为“11”的情况下记录此记录。

enter image description here

我尝试使用'where子句,例如:(11)中的adminState,但我不能成功。

3 个答案:

答案 0 :(得分:1)

ON A.id = B.[occasion] AND B.adminState = 11

另外,尝试将其更改为外部联接,我认为这是您正在寻找的内容。如果没有,您可以添加更多详细信息。

答案 1 :(得分:1)

这个答案是基于你对阿卜杜勒的回答的评论。

SELECT *
  FROM (Select  TOP(1) *
          from   A
                 inner JOIN B ON  A.id = B.[occasion]
          where
             A.id ='136002' and
             A.[prescribedTime] >='2017-12-11 20:00:00.000'
        ORDER BY versioningInformation_createdDateTime ASC ) g
WHERE g.adminState = 11

答案 2 :(得分:1)

    SELECT * FROM 
(Select TOP(1) A.id,<rest of the cols>
from A inner JOIN B 
ON A.id = B.[occasion] 
where A.id ='136002'
 and A.[prescribedTime] >='2017-12-11 20:00:00.000' 
ORDER BY versioningInformation_createdDateTime ASC ) 
 tab

    WHERE adminState = 11