2016-03-07 52 views
0

我有sql查询如下例。迭代参数

Select 
    number,age 
from 
    tbldetails 
where 
    month = @Month and year = @Year 
union 
Select 
    number,age 
from 
    tblcontacts 
where 
    month = @Month and year = @Year 

现在我想为过去12个月的@Month@Year上述查询的详细信息,然后对年龄做平均。

示例@Month = Dec和@Year = 2015 我想将2015年1月至2015年12月的年龄换算成平均值。

我想在ssrs报告中使用它。

希望能得到一些帮助:)

回答

0

若要筛选所需的日期范围内,我将年份和月份合并成一个字符串列,然后用它来比较你的转换参数(减去一年)。

WHERE CAST(YEAR AS VARCHAR(4) + RIGHT('00' + CAST(MONTH AS VARCHAR(2)), 2) 
    >= CAST((@YEAR - 1) AS VARCHAR(4) + RIGHT('00' + CAST(@MONTH AS VARCHAR(2)), 2) 
+0

谢谢汉诺威拳 - 你的答案,他给我打了 – Deepthi

0

Declare @Year int; Set @Year ='2016'

Declare @Month varchar(10); Set @Month ='11'

Declare @Date varchar(10); (@Yar as varchar(4))

声明@StartDate varchar(19);Set @StartDate = Convert(varchar(19),DateAdd(m,-12,@ Date),103) - 103 dd/mm/yy

Declare @EndDate varchar(20); 集@EndDate =转换(VARCHAR(20),使用DateAdd(米,12,@起始日期),103)

选择 萨姆(StCount)作为TotalStudents (

SELECT COUNT(Rollnbr)作为StCount, .. 凡@StartDate和@EndDate

之间的日期

工会 SELECT COUNT(Rollnbr)作为StCount .. 凡@StartDate和@EndDate 之间的日期)SQL1