SQL Server CE选择具有最大日期的行值

时间:2014-12-18 16:07:06

标签: sql sql-server-ce

我使用的SQL Server CE不支持子查询。我有一个表,其中包含按日期检查的结果(值)。我需要选择最后一个日期的ID,并进行检查。

我有这些专栏:

ID 
ID_Tags    + 
ID_Url     + 
ID_Page    + 
DateDownloaded 
Value

3列标有" +"一起表示一个已检查的实例,需要该值。

所以我想选择ID,ID_Tags,ID_Url和ID_Page代表一个独特的组合,而DateDownloaded是这个组合的最后一个。

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。

虽然,SQL Server CE不支持子查询,但它支持" IN"条件。所以,我已经用下一个有效的方式编写了这个查询:

 SELECT ID, ID_Tags, ID_Url, ID_Page, MAX(DateDownloaded) as DateDownloaded
    FROM RealRecords
    WHERE DateDownloaded IN
    (
        SELECT MAX(DateDownloaded)
        FROM RealRecords
        GROUP BY ID_Tags, ID_Url, ID_Page
    )
AND ID IN
(
    SELECT MAX(ID)
    FROM RealRecords
    GROUP BY ID_SetTags, ID_Url_Adresses, ID_SeoPage
)
    GROUP BY ID, ID_Tags, ID_Url, ID_Page

此查询包含所需的everythig,可以修改为仅返回ID。

在某些DateDownloaded相等的情况下添加了ID IN。 ID是具有自动递增的主键,因此最后一个值将是最后一个值的100%,将此检查与DateDownloaded列组合。