我有两个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”的情况下记录此记录。
我尝试使用'where子句,例如:(11)中的adminState,但我不能成功。
答案 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