最亲爱的专业人士,
我需要在几个日期范围内获得一些不同客户的列表,而且我并不是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
答案 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());