SQL Server CE替换subselect

时间:2012-06-08 07:33:26

标签: sql-server-ce subquery

我有这个SQL语句:

SELECT *
FROM history
WHERE (fk_person = 2119) AND (action = 2) AND (date =
                                                      (SELECT MAX(day) AS maxDay
                                                       FROM history AS hist
                                                       WHERE (fk_person = 2119)))

据我所知,SQL Server CE不支持子查询。

我该如何更换?

感谢您的回答!

2 个答案:

答案 0 :(得分:2)

尝试

SELECT h1.*
FROM history h1
inner join FROM history h2 on h1.fk_person = h2.fk_person
WHERE h1.fk_person = 2119
AND h1.action = 2
AND h1.day = MAX(h2.day)

答案 1 :(得分:0)

我不确定有多少记录具有相同的MAX(day),但如果您只需要一个,则以下内容可能适用于您:

SELECT TOP (1) *
FROM history
WHERE (fk_person = 2119)
AND (action = 2) 
ORDER BY day DESC