首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

求有关问题解决办法!sql难度大!有点挑战

2012-05-11 
求问题解决方法!sql难度大!有点挑战有点复杂!A表:SQL codeAIDNameRegion1张三东区2王二西区3张毛东区4王三

求问题解决方法!sql难度大!有点挑战
有点复杂!
A表:

SQL code
AID    Name  Region1      张三  东区2      王二  西区3      张毛  东区4      王三  北区

B表:
SQL code
BID  AID  ShopName    BeigionDate   EndDate1     1    慢点店铺   2011-1-11    2012-12-122     3    张三店铺   2011-1-11    2012-12-113     4    有人店铺   2011-1-11    2012-12-11

C表:
SQL code
CID  BID  Amount  Date1     1    2000   2012-4-122     1    5000   2012-4-153     2    4000   2012-4-2


需得到报表:(数据是随便填的)
区域同比店铺数量 同比MTD 同比YTD区域店铺数量区域MTD 区域YTD
张三 2 -2% -10% 3 4% 10%
张毛
东区
王二
西区
王三
北区
All

解释来源:(人员下面有N店铺)
区域:显示的数据就是目前写在里面的格式。
同比店铺数量: B表对应C表有数据。(今年1,2,3,4(4是当前月,如果是10月,就依次下去比较)和去年1,2,3,4相比较都有数据。才算数量)C表的:Date

同比MTD:当前月(C表:Date)的数据(C表:Amount)除以上一年的这个月的数据(C表Amount)-1 (且当月不能没有数据)

同比YTD:截至目前月(C表:date)(比如现在是:1 2 3 4 )的数据(C表:Amount)除以对应上一年的数据-1 (且当月不能没有数据)

区域店铺数量:当前月数据(c表)不为空就算。

区域MTD:当前月C表数据(C表:Amount)相加除以上一年当月数据-1

区域YTD:截至目前月(C表:date)(比如现在是:1.2.3.4 的总和)的数据(C表:Amount)除以对应上一年的数据-1 (且当月不能没有数据)

有点复杂!求高手相助!

[解决办法]
貌似比我提的问题还复杂
路过~``````````
[解决办法]
尼玛,这些问题咋都这么变态
[解决办法]
楼上带勋章的,给我去瞅瞅问题咋解决
[解决办法]
关注这个帖子,MSSQL不借助外部工具,可以同时实现明细和统计功能?

[解决办法]
-- 先构建基础数据视图
-- 关注地区、人员、月份、数量
create view vw_summaryas
select Region, Name, Mn, sum(amount) as Amount
from (
-- 各月各店铺的销售合计
select BID, 
dateadd(month,datediff(month,0,[date]),0) as Mn, 
sum(Amount) as amount
from tableC
group by BID, dateadd(month,datediff(month,0,[date]),0)
) as c
join tableB b on b.BID=c.BID
join tableA a on a.AID=b.AID
group by Region, Name, Mn

[解决办法]
-- 再基于此视图编写若干函数给出人员月份,计算环比,同比..

热点排行