按最近日期查看不同结果的SQL查询

时间:2014-12-17 14:26:26

标签: sql

最亲爱的专业人士,

我需要在几个日期范围内获得一些不同客户的列表,而且我并不是100%肯定如何去做。

列表1:
我需要不同的(ClientNum),最近的EditDate是今天和更早的5岁。

列表2:
我需要与今天4岁和今天5岁之间的最新EditDate不同(ClientNum)。

列表3:
我需要与今天3岁和今天4岁之间的最新EditDate不同(ClientNum)。

现在,我有以下内容,我得到了结果,我只是不知道我是否得到了我认为应该得到的内容。

列出1个查询:

SELECT DISTINCT(ClientNum)
FROM Table
WHERE EditDate < DATEADD(year,-5,GETDATE()) 

列表2查询:

SELECT DISTINCT(ClientNum)
FROM Table
WHERE EditDate BETWEEN DATEADD(year,-5,GETDATE()) AND DATEADD(year,-4,GETDATE())

列表2查询:

SELECT DISTINCT(ClientNum)
FROM Table
WHERE EditDate BETWEEN DATEADD(year,-4,GETDATE()) AND DATEADD(year,-3,GETDATE())

这是正确的方法吗?或者我错过了什么?

请指教。

-Nick

1 个答案:

答案 0 :(得分:2)

清单1

SELECT ClientNum, max(EditDate) as maxEditDate 
FROM Table
GROUP BY ClientNum
HAVING maxEditDate < DATEADD(year,-5,GETDATE());

清单2

SELECT ClientNum, max(EditDate) as maxEditDate 
FROM Table
GROUP BY ClientNum
HAVING maxEditDate BETWEEN DATEADD(year,-5,GETDATE()) AND DATEADD(year,-4,GETDATE());

清单3

SELECT ClientNum, max(EditDate) as maxEditDate 
FROM Table
GROUP BY ClientNum
HAVING maxEditDate BETWEEN DATEADD(year,-4,GETDATE()) AND DATEADD(year,-3,GETDATE());