Visual studio 2010 Visual Studio 2010-从带有日期的参数中提取年份

Visual studio 2010 Visual Studio 2010-从带有日期的参数中提取年份,visual-studio-2010,reporting-services,parameters,Visual Studio 2010,Reporting Services,Parameters,目标是设置一个参数,允许任何人按顺序输入年份 以显示当年的销售额 这是我在“数据库属性”区域输入的代码 SELECT st.Name AS Region, st.SalesYTD AS Sales, YEAR(so.OrderDate) AS OrderYear FROM Sales.SalesOrderHeader AS so LEFT OUTER JOIN Sales.SalesTerritory AS s

目标是设置一个参数,允许任何人按顺序输入年份 以显示当年的销售额

这是我在“数据库属性”区域输入的代码

SELECT
    st.Name AS Region, st.SalesYTD AS Sales, YEAR(so.OrderDate) AS OrderYear        
FROM                
    Sales.SalesOrderHeader AS so  
LEFT OUTER JOIN     
    Sales.SalesTerritory AS st ON so.TerritoryID = st.TerritoryID 
WHERE               
    DATEPART(YEAR, so.OrderDate)=@OrderDate
当我打开“预览”时,出现了以下错误

如何重写此代码以使其平稳运行

挑选 st.Name作为地区,st.SalesYTD作为销售,YEARso.OrderDate作为OrderYear 从…起 Sales.SalesOrderHeader也是如此 左外连接 Sales.SalesTerritory作为st ON so.TerritoryID=st.TerritoryID 哪里 DATEPARTYEAR,so.OrderDate=DATEPARTYEAR,@OrderDate


正如Ian Preston所建议的那样,它不应该是…DATEPARTYEAR,所以.OrderDate=DATEPARTYEAR,@OrderDate?DATEPARTYEAR,所以.OrderDate返回一个int-这实际上无法与@OrderDate进行比较,后者很可能是一个日期时间或日期-对吗?还有:为什么在列列表中使用YAERso.OrderDate和DATEPARTYEAR,WHERE子句中的so.OrderDate?他们都做同样的事情——选择一个,使用一个——任何一个——但只使用两种方法中的一种——这都是一致性的问题谢谢你,伊恩!它按照你指定的方式工作。唯一的问题是时间、日期和月份仍然是固定的。我只喜欢今年。如果你对此有任何想法,请告诉我。与此同时,我会继续努力。