计算FY年度中每周购买的一年中的类别数量

时间:2015-08-13 11:26:57

标签: sql sql-server-2012

我有一个查询,它将返回客户在前一年购买的类别数量。 我可以将它填入表中 - 我正在努力的是一种将日期向前移动一周的有效方式,然后重新运行以附加到表格中。 基本上我要做的是为客户(educationNumber)在一年中购买的类别数量创建滚动配置文件

附加的查询显然可以追溯到365天,然后是当前日期的365,并计算客户购买的不同类别 - 我如何逐周推出这个滚动时间段? 我希望这样做尽可能高效,因为这会产生很多行

我已将此修改为现在将其添加到另一个表并找到循环的方法 - 但是我现在在结束时遇到语法错误.. 这也是做我想做的最有效的方式吗?

declare @MYDATE datetime;
set @mydate = '2015-07-13 00:00:00.000';
while @MYDATE <= '2015-08-13 00:00:00.000'


insert into #CategoryHistory
--[WorkArea_Alastair].[dbo].[CategoryHistory]
(educationNumber,
Cats ,
EstablismentGroup,
YR_DATE
)

select 
trns.EducationNumber,
Count(distinct(sub.CR_ProductCategory))as Cats,
est.EstablishmentGroup,
@MyDate as YR_WK

from tblSalesTransactionsFull trns 
inner join tblProducts prd on trns.ISBNId = PRD.ISBNId
Inner join tblsubjects sub on prd.CR_ItemGroupMajor = sub.SUBJECtID
inner join tbleducationlive edu on trns.educationNumber =     edu.EducationNumber
inner join tblEstablishmentTypes est on edu.EstablishmentType =      est.EstablishmentType
where 
transactiondate = @MYDATE
and transactiondate >= getdate()-365
and transactionstatus = 'D'
and value >= '0.01'
--and Division in ('1','2')
and est.EstablishmentGroup = 'Primary Schools'
group by trns.educationNumber,est.EstablishmentGroup 
order by trns.EducationNumber asc

set @Mydate = @mydate + 7;
end

0 个答案:

没有答案