预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共21页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:.NET统计分析报表解决方案1-用户订购统计分析案例前段时间接到很多报表的工作,现拿出一些小例子与大家分享。用户需求:运营商管理员:1.以合作伙伴为维度对用户订购进行统计分析:a.可对某一个合作伙伴进行分析,查看该合作伙伴下产品的用户订购在某个时间段内的发展趋势,需实现折线图、柱状图。b.可对所有合作伙伴进行分析,对比在某段时间内所有合作伙伴下产品的用户订购发展量,查看在某段时间内所有合作伙伴下产品的用户订购发展量在订购总量中所占比例,需实现柱状图、饼状图。2.以产品为维度对用户订购进行统计分析:a.可对某一个产品进行分析,查看该产品的用户订购在某个时间段内的发展趋势,需实现折线图、柱状图。b.可对所有产品进行分析,对比在某段时间内所有产品的用户订购发展量,查看在某段时间内所有产品的用户订购发展量在订购总量中所占比例,需实现柱状图、饼状图。合作伙伴管理员:1.以产品为维度对用户订购进行统计分析:a.可对本公司下某一个产品进行分析,查看该产品的用户订购在某个时间段内的发展趋势,需实现折线图、柱状图。b.可对本公司下所有产品进行分析,对比在某段时间内所有产品的用户订购发展量,查看在某段时间内所有产品的用户订购发展量在订购总量中所占比例,需实现柱状图、饼状图。时间需支持按年、按月统计。根据用户需求,我们可以开始进行实现。实现步骤:这里是用一个例子实现用户需求,没有用到系统内的表,系统内的表有很多例子中不需要的字段,所以根据系统内表结构新建。1.数据库数据表设计:合作伙伴表(CPInfo)产品信息表(ProductInfo):用户订购表(UserOrderInfo):因为是移动的系统,所以用户订购是通过手机。2.统计分析表建立:由于现实系统数据量比较大,统计的数据也不是实时的,所以统计分析不直接在原始数据表上进行,这样我们就需要建立一个专门用来存放统计分析数据的表。用户订购统计分析表(UserOrderStat):a.StatType字段为报表类型,这里定义为:CP-按CP公司统计数据,Product-按产品统计数据b.TimeType字段为时间类型,这里定义为:Year-按年统计数据,Month-按月统计数据3.统计分析存储过程建立:按年统计存储过程:IFEXISTS(SELECT*FROMsys.objectsWHEREobject_id=OBJECT_ID(N'[dbo].[SP_UserOrderStatByYear]')ANDtypein(N'P',N'PC'))DROPPROCEDURE[dbo].[SP_UserOrderStatByYear]GO--按年统计用户订购CREATEPROCEDURESP_UserOrderStatByYear@BeginYearINT,--开始年份@EndYearINT--结束年份ASBEGINDECLARE@Temp_BeginYearINTDECLARE@Temp_EndYearINTDECLARE@BeginTimeNVARCHAR(16)DECLARE@EndTimeNVARCHAR(16)SET@Temp_BeginYear=@BeginYearSET@Temp_EndYear=@EndYear+1--判断结束年份是否为当前时间年份或大于当前时间年份IF@EndYear>=YEAR(GETDATE())SET@Temp_EndYear=YEAR(GETDATE())SET@BeginTime=CAST(@Temp_BeginYearASNVARCHAR(8))+'-1-1'SET@EndTime=CAST(@Temp_EndYearASNVARCHAR(8))+'-1-1'--添加年统计数据INSERTINTOUserOrderStat(StatType,TimeType,[Year],CPCode,CPChName,ProductCode,ProductName,OrderCount)--按CP公司统计SELECT'CP','Year',YEAR(uoi.OrderTime),uoi.CPCode,MAX(c.CPChName),'','',COUNT(0)FROMUserOrderInfouoiJOINCPInfocONuoi.CPCode=c.CPCodeJOINProductInfopONuoi.ProductCode=p.ProductCodeWHEREuoi.Status=1ANDuoi.OrderTime>@BeginTimeANDuoi.OrderTime<@EndTimeANDNOTEXISTS(SELECT0FROMUserOrderStatuosWHEREuos