Sql server 从SQL Server中的视图获取当前年份的记录
我有一个名为vwMemberPolicyInfo的视图,我需要显示当年输入的所有记录 我的问题是:Sql server 从SQL Server中的视图获取当前年份的记录,sql-server,Sql Server,我有一个名为vwMemberPolicyInfo的视图,我需要显示当年输入的所有记录 我的问题是: select EffectiveDate AS [Month], count(MemberID) AS Agents, sum(ActualPremium) AS Premium from vwMemberPolicyInfo Where EffectiveDate > DATEADD(year, -1, GETDATE()) GROUP
select
EffectiveDate AS [Month],
count(MemberID) AS Agents,
sum(ActualPremium) AS Premium
from
vwMemberPolicyInfo
Where
EffectiveDate > DATEADD(year, -1, GETDATE())
GROUP BY
EffectiveDate
但它运行不正常,它显示出以下结果:
2010-11-01 00:00:00.000 74 40644.00
2010-07-01 00:00:00.000 86 50418.00
2011-03-08 00:00:00.000 1 744.00
2011-04-08 00:00:00.000 1 0.00
2010-11-02 00:00:00.000 5 2676.00
2011-04-14 00:00:00.000 1 1185.00
2011-02-28 00:00:00.000 7 2988.00
2011-02-23 00:00:00.000 8 8518.00
2011-04-10 00:00:00.000 1 1332.00
2011-04-07 00:00:00.000 3 2544.00
我只需要显示当前年份的条目..提前感谢试试YEAREffectiveDate=YEARGETDATE
希望它能有所帮助。它工作得很好-它完全按照你告诉它的做-它会返回今天到一年前的所有行,例如2011年4月15日到2010年4月15日之间的行 您可能希望实现的目标如下:
SELECT
EffectiveDate AS [Month],
COUNT(MemberID) AS Agents,
SUM(ActualPremium) AS Premium
FROM
dbo.vwMemberPolicyInfo
WHERE
YEAR(EffectiveDate) = 2011
GROUP BY
EffectiveDate
这将只返回2011年的行。选择
SELECT MONTH(EffectiveDate) AS [Month],
count(MemberID) AS Agents,
sum(ActualPremium) AS Premium
FROM vwMemberPolicyInfo
WHERE EffectiveDate >= DATEADD(year, YEAR(GETDATE()) - 1, CAST('0001-01-01' AS DATE))
AND EffectiveDate < DATEADD(year, YEAR(GETDATE()), CAST('0001-01-01' AS DATE))
GROUP BY
MONTH(EffectiveDate)
生效日期为[月份],
countMemberID作为代理,
作为保险费的实际费用
从…起
vwMemberPolicyInfo
哪里
dateaddyear,0,EffectiveDate=dateaddyear,0,GETDATE
分组
生效日期
dateadd(year,0,EffectiveDate) = DATEADD(year, -1, GETDATE())
dateadd(year,-1,EffectiveDate) = DATEADD(year, -1, GETDATE())
+1对于可以在effectiveDate上使用索引和列统计信息的答案是,这很好,即yeareffectivedate=yeargetdate