mysql里怎么计环比 sql环比的语句

求问Mysql同比环比SQL语句怎么写首先明确概念:
环比增长率=(本期数-上期数)/上期数*100% 反映本期比上期增长了多少 。
同比增长率=(本期数-同期数)/同期数*100% 指和去年同期相比较的增长率 。
如何用mysql实现环比的计算?SELECT
t.bill_fee,
y.bill_fee,
CASE
WHEN y.bill_fee IS NULL
OR y.bill_fee = 0 THEN
【mysql里怎么计环比 sql环比的语句】0.00 ELSE round(( t.bill_fee - y.bill_fee )/ y.bill_fee * 100, 2 )
END ratio
FROM
( SELECT DATE_FORMAT( t.attr_cycle, '%Y%m%d' ) AS attr_cycle, T.BILL_FEE FROM dd_result t ) t
LEFT JOIN (
SELECT
DATE_FORMAT( t.attr_cycle, '%Y%m%d' ) AS attr_cycle,
DATE_FORMAT( DATE_ADD( t.attr_cycle, INTERVAL 1 DAY ), '%Y%m%d' ) AS tomorrow,
T.BILL_FEE
FROM
dd_result t
) y ON t.attr_cycle = y.tomorrow
SQL里怎么查询销售同比与环比这里有个同比和环比的例子 。好好研究下就知道了 。表结构如下:
IDDepartName(部门) Sales(销售量) SalesDate(销售日期)
1营销一部3002006-7-1
2 营销二部5002006-7-1
3 营销三部8002006-8-1
4 营销一部6002006-8-1
5 营销二部8002006-8-1
6 营销一部4002007-7-1
7 营销二部8002007-7-1
8 营销三部7002007-8-1
9 营销一部6002008-7-1
10 营销二部3002008-7-1
要根据要求得到以下数据
1)选择开始年月,结束年月,得到同比数据
eg.开始年月:2006-7 结束:2006-8
获?。?
对比年月 DepartName(部门) Sales(销售总量)上期差异 差异率
2006-7营销一部3000300无穷大
2006-7营销一部5000500无穷大
2006-7营销三部0000
2006-8 .... ....
(2)选择月份 获取环比数据
eg.选择 2008.7
部门本月销售总量去年同期变动变动率
营销一部600000
营销二部300800-500(300-800)/800 Code
1--雇员数据
2CREATE TABLE Employee(
3ID int,--雇员编号(主键)
4Name nvarchar(10),--雇员名称
5Dept nvarchar(10))--所属部门
6INSERT Employee SELECT 1,N'张三',N'大客户部'
7UNIONALLSELECT 2,N'李四',N'大客户部'
8UNIONALLSELECT 3,N'王五',N'销售一部'
9--费用表
10CREATE TABLE Expenses(
11EmployeeID int,--雇员编号
12Date Datetime,--发生日期
13Expenses nvarchar(10), --指标名称
14[Money] decimal(10,2)) --发生金额
15INSERT Expenses SELECT 1,'2004-01-01',N'销售',100
16UNIONALLSELECT 1,'2004-01-02',N'销售',150
17UNIONALLSELECT 1,'2004-12-01',N'销售',200
18UNIONALLSELECT 1,'2005-01-10',N'销售', 80
19UNIONALLSELECT 1,'2005-01-15',N'销售', 90
20UNIONALLSELECT 1,'2005-01-21',N'成本',8
21UNIONALLSELECT 2,'2004-12-01',N'成本',2
22UNIONALLSELECT 2,'2005-01-10',N'销售', 10
23UNIONALLSELECT 2,'2005-01-15',N'销售', 40
24UNIONALLSELECT 2,'2005-01-21',N'成本',8
25UNIONALLSELECT 3,'2004-01-01',N'销售',200
26UNIONALLSELECT 3,'2004-12-10',N'销售', 80
27UNIONALLSELECT 3,'2005-01-15',N'销售', 90
28UNIONALLSELECT 3,'2005-01-21',N'销售',8
29GO
30
31--统计
32DECLARE @Period char(6)
33SET @Period='200501' --统计的年月
34
35--统计处理
36DECLARE @Last_Period char(6),@Previous_Period char(6)
37SELECT @Last_Period=CONVERT(char(6),DATEADD(Year,-1,@Period '01'),112),
38@Previous_Period=CONVERT(char(6),DATEADD(Month,-1,@Period '01'),112)
39SELECT Dept,Expenses,Name,
40C_Money,
41L_Money,
42L_UP=C_Money-L_Money,
43L_Prec=CASE
44WHEN L_Money=0 THEN '----'
45ELSE SUBSTRING('↓-↑',CAST(SIGN(C_Money-L_Money) as int) 2,1)
46CAST(CAST(ABS(C_Money-L_Money)*100/P_Money as decimal(10,2)) as varchar) '%'
47END,
48P_Money,
49P_UP=C_Money-P_Money,
50P_Prec=CASE
51WHEN P_Money=0 THEN '----'
52ELSE SUBSTRING('↓-↑',CAST(SIGN(C_Money-P_Money) as int) 2,1)
53CAST(CAST(ABS(C_Money-P_Money)*100/P_Money as decimal(10,2)) as varchar) '%'
54END
55FROM(
56SELECT a.Dept,b.Expenses,
57Name=CASE WHEN GROUPING(Name)=1 THEN '合计' ELSE a.Name END,
58C_Money=ISNULL(SUM(CASE CONVERT(char(6),b.Date,112) WHEN @Period THEN b.[Money] END),0),
59L_Money=ISNULL(SUM(CASE CONVERT(char(6),b.Date,112) WHEN @Last_Period THEN b.[Money] END),0),
60P_Money=ISNULL(SUM(CASE CONVERT(char(6),b.Date,112) WHEN @Previous_Period THEN b.[Money] END),0)
61FROM Employee a,Expenses b
62WHERE a.ID=b.EmployeeID
63AND CONVERT(char(6),b.Date,112) IN(@Last_Period,@Previous_Period,@Period)
64GROUP BY a.Dept,b.Expenses,a.ID,a.Name WITH ROLLUP
65HAVING (GROUPING(a.Name)=0 OR GROUPING(a.ID)=1)
66AND (GROUPING(a.ID)=0 OR GROUPING(b.Expenses)=0))a
67
68/**//*--结果
69DeptExpensesNameC_Money L_Money L_UPL_PrecP_Money P_UPP_Prec
70------- --------- -------- --------- -------- -------- -------- -------- -------- ------
71大客户部成本张三8.00.008.00----.008.00----
72大客户部成本李四8.00.008.00----2.006.00↑300.00%
73大客户部成本合计16.00.0016.00----2.0014.00↑700.00%
74大客户部销售张三170.00250.00-80.00↓32.00 0.00-30.00↓15.00%
75大客户部销售李四50.00.0050.00----.0050.00----
76大客户部销售合计220.00250.00-30.00↓12.00 0.0020.00↑10.00%
77销售一部销售王五98.00200.00-102.00↓51.00€.0018.00↑22.50%
78销售一部销售合计98.00200.00-102.00↓51.00€.0018.00↑22.50%
79--*/
80
81
82
mysql里怎么计环比的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于sql环比的语句、mysql里怎么计环比的信息别忘了在本站进行查找喔 。

    推荐阅读