NET统计分析报表解决方案.docx

上传人:b****3 文档编号:2948469 上传时间:2022-11-16 格式:DOCX 页数:22 大小:896.77KB
下载 相关 举报
NET统计分析报表解决方案.docx_第1页
第1页 / 共22页
NET统计分析报表解决方案.docx_第2页
第2页 / 共22页
NET统计分析报表解决方案.docx_第3页
第3页 / 共22页
NET统计分析报表解决方案.docx_第4页
第4页 / 共22页
NET统计分析报表解决方案.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

NET统计分析报表解决方案.docx

《NET统计分析报表解决方案.docx》由会员分享,可在线阅读,更多相关《NET统计分析报表解决方案.docx(22页珍藏版)》请在冰豆网上搜索。

NET统计分析报表解决方案.docx

NET统计分析报表解决方案

NET统计分析报表解决方案

前段时刻接到专门多报表的工作,现拿出一些小例子与大伙儿分享。

用户需求:

运营商治理员:

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--终止年份

AS

BEGIN

DECLARE@Temp_BeginYearINT

DECLARE@Temp_EndYearINT

DECLARE@BeginTimeNVARCHAR(16)

DECLARE@EndTimeNVARCHAR(16)

SET@Temp_BeginYear=@BeginYear

SET@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.CPCode

JOINProductInfopONuoi.ProductCode=p.ProductCode

WHEREuoi.Status=1ANDuoi.OrderTime>@BeginTimeANDuoi.OrderTime<@EndTime

ANDNOTEXISTS(SELECT0FROMUserOrderStatuosWHEREuos.CPCode=uoi.CPCodeANDuos.Year=YEAR(uoi.OrderTime))

GROUPBYuoi.CPCode,YEAR(uoi.OrderTime)

UNION

--按产品统计

SELECT'Product','Year',YEAR(uoi.OrderTime),MAX(uoi.CPCode),MAX(c.CPChName),uoi.ProductCode,MAX(p.ProductName),COUNT(0)

FROMUserOrderInfouoiJOINCPInfocONuoi.CPCode=c.CPCode

JOINProductInfopONuoi.ProductCode=p.ProductCode

WHEREuoi.Status=1ANDuoi.OrderTime>@BeginTimeANDuoi.OrderTime<@EndTime

ANDNOTEXISTS(SELECT0FROMUserOrderStatuosWHEREuos.CPCode=uoi.CPCode

ANDuos.ProductCode=uoi.ProductCodeANDuos.Year=YEAR(uoi.OrderTime))

GROUPBYuoi.ProductCode,YEAR(uoi.OrderTime)

END

GO

 

按月统计储备过程:

IFEXISTS(SELECT*FROMsys.objectsWHEREobject_id=OBJECT_ID(N'[dbo].[SP_UserOrderStatByMonth]')ANDtypein(N'P',N'PC'))

DROPPROCEDURE[dbo].[SP_UserOrderStatByMonth]

GO

--按月统计用户订购

CREATEPROCEDURESP_UserOrderStatByMonth

@BeginYearINT,--开始年份

@BeginMonthINT,--开始月份

@EndYearINT,--终止年份

@EndMonthINT--终止月份

AS

BEGIN

DECLARE@Temp_BeginYearINT

DECLARE@Temp_BeginMonthINT

DECLARE@Temp_EndYearINT

DECLARE@Temp_EndMonthINT

DECLARE@BeginTimeNVARCHAR(16)

DECLARE@EndTimeNVARCHAR(16)

SET@Temp_BeginYear=@BeginYear

SET@Temp_BeginMonth=@BeginMonth

SET@Temp_EndYear=@EndYear

SET@Temp_EndMonth=@EndMonth+1

 

--判定终止年份是否大于当前时刻年份,当前月份是否为1月或者判定终止年份是否等于当前时刻年份,终止月份是否大于当前时刻月份

IF@EndYear>YEAR(GETDATE())OR(@EndYear=YEAR(GETDATE())AND@EndMonth>MONTH(GETDATE()))

BEGIN

SET@Temp_EndYear=YEAR(GETDATE())

SET@Temp_EndMonth=MONTH(GETDATE())

END

SET@BeginTime=CAST(@Temp_BeginYearASNVARCHAR(8))+'-'+CAST(@BeginMonthASNVARCHAR(8))+'-1'

SET@EndTime=CAST(@Temp_EndYearASNVARCHAR(8))+'-'+CAST(@EndMonthASNVARCHAR(8))+'-1'

--添加月统计数据

INSERTINTOUserOrderStat

StatType,

TimeType,

[Year],

[Month],

CPCode,

CPChName,

ProductCode,

ProductName,

OrderCount

--按CP公司统计

SELECT'CP','Month',YEAR(uoi.OrderTime),MONTH(uoi.OrderTime),uoi.CPCode,MAX(c.CPChName),'','',COUNT(0)

FROMUserOrderInfouoiJOINCPInfocONuoi.CPCode=c.CPCode

JOINProductInfopONuoi.ProductCode=p.ProductCode

WHEREuoi.Status=1ANDuoi.OrderTime>@BeginTimeANDuoi.OrderTime<@EndTime

ANDNOTEXISTS(SELECT0FROMUserOrderStatuosWHEREuos.CPCode=uoi.CPCode

ANDuos.Year=YEAR(uoi.OrderTime)ANDuos.Month=MONTH(uoi.OrderTime))

GROUPBYuoi.CPCode,YEAR(uoi.OrderTime),MONTH(uoi.OrderTime)

UNION

--按产品统计

SELECT'Product','Month',YEAR(uoi.OrderTime),MONTH(uoi.OrderTime),MAX(uoi.CPCode),MAX(c.CPChName),uoi.ProductCode,MAX(p.ProductName),COUNT(0)

FROMUserOrder

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1