女士们先生们,
我需要编写一个从视图中获取数据的查询,但我不知道该怎么做。问题是实际上没有键,我关心的两个字段将控制我需要检索的行。
视图看起来像这样:
Category columna columnb uploaddate
-----------------------------------------------------
a value value 1/30/2013 04:04:04:000
a value value 1/29/2013 04:04:04:000
b value value 1/28/2013 01:23:04:000
b value value 1/30/2013 04:04:04:000
b value value 1/30/2013 04:04:04:000
c value value 1/30/2013 01:01:01:000
c value value 1/30/2013 01:01:01:000
我需要检索的是每个唯一类别和最新的所有行uploaddate
。所以在上面的例子中,我会得到 1 行的类别 a ,它有最新的uploaddate
. 类别 b 将有 2 行日期为 2013 年 1 月 30 日。类别 c 也将有两行。
我还需要比较上传日期,而不是时间。因为加载可能需要几秒钟。我试图使用最大日期,但它只会抓住时间到第二个。
任何指导/想法都会很棒。
谢谢!
编辑:
这是我到目前为止汇总的内容,我认为它已经接近但它还没有工作,我怀疑这是最有效的方法。
select
*
from
VIEW c
INNER JOIN
(
SELECT
Category,
MAX(CONVERT(DateTime, Convert(VarChar, UploadDate, 101))) as maxuploaddate
FROM
View
GROUP BY
Category,
UploadDate
) temp ON temp.Category = c.Category AND CONVERT(VarChar, UploadDate, 101) = temp.maxuploaddate
问题在于嵌套的选定语句,因为它仍在获取类别和上传日期的所有组合。有没有办法在 Category 和 UploadDate 上做一个区分,只是得到最新的组合?
再次感谢