// This return me 10k values
YEAR(pol.datum) >= YEAR(GETDATE()) - 1 and YEAR(pol.datum) <= YEAR(GETDATE())
// This return me 14k values
YEAR(pol.datum) = YEAR(GETDATE()) and MONTH(pol.datum) <= MONTH(GETDATE()) - 1 and MONTH(pol.datum) >= MONTH(GETDATE()) - 7
// this return me 16k value
YEAR(pol.datum) = YEAR(GETDATE()) and MONTH(pol.datum) >= MONTH(GETDATE()) - 4 and MONTH(pol.datum) <= MONTH(GETDATE()) - 1
你能告诉我为什么它会让我在几个月内比一年后更有价值
答案 0 :(得分:1)
将此作为答案发布,因为评论中没有足够的空间
您应该发布整个查询,因为当前语句应该产生更多结果,而对于您来说它们返回的更少。
请使用以下代码自行查看:
declare @test Datetime;
select @test = '2013-1-04';
select 1
where YEAR(@test) > YEAR(GETDATE()) - 1
and YEAR(@test) <= YEAR(GETDATE())
select 1
where YEAR(@test) = YEAR(GETDATE())
and MONTH(@test) <= MONTH(GETDATE()) - 1
and MONTH(@test) >= MONTH(GETDATE()) - 7
select 1
where YEAR(@test) = YEAR(GETDATE())
and MONTH(@test) >= MONTH(GETDATE()) - 4
and MONTH(@test) <= MONTH(GETDATE()) - 1
更改为测试值,您将找不到触发第二个或第三个而不触发第一个或第三个的值 总之:发布您的整个查询:)