给出的是一张带有文章的表格。以下示例性表格包含不同版本的一篇文章:
ID ARTICLE_NUMBER STORE_ID COUNTRY TYPE VALID_FROM ---------------------------------------------------------------- 100 1 22 DE A 2015-11-01 101 1 22 DE A 2015-11-02 102 1 22 DE A 2015-11-03 103 1 22 DE A 2015-11-04 104 1 22 DE B 2015-11-10 105 1 22 DE B 2015-11-11 106 1 22 DE B 2015-11-11
我需要的是一个只返回
文章的 ID 的查询到目前为止,查询应返回ID = 105或106(两者都具有相同的valid_from日期,但我只想在结果中使用其中一个,不管是哪个,而不是两者都有)。 AND:因为本文有两种类型(A + B),我的结果集中也需要ID = 103。
查询必须如何?
答案 0 :(得分:1)
您可以尝试过滤器中的HAVING参数并选择MAX(ID)
或者使用子选择:
SELECT [Type],(SELECT TOP(1) ID from dbo.articles S WHERE S.[Type] = A.Type AND S.Valid_From = MAX(A.Valid_From))
FROM dbo.articles A
WHERE
ARTICLE_NUMBER = 1
AND STORE_ID = 22
AND Country = 'DE'
-- AND Valid_FROM = (SELECT MAX(VALID_FROM) FROM dbo.articles)
GROUP BY [Type]