环比增长率=(本期数-上期数)/上期数*100% 反映本期比上期增长了多少。
同比增长率=(本期数-同期数)/同期数*100% 指和去年同期相比较的增长率。
SQL 同期对比月?这个 同期的期, 是 年? 半年? 还是季度?
如果是年的话。就是 用 需要比较的日期 减去一年的 *** 作来处理。
如果是 半年的话, 用 需要比较的日期 减去6个月的 *** 作来处理。
如果是 季度的话, 用 需要比较的日期 减去3个月的 *** 作来处理。
至于 日期如何减 , 例如减少 6 个月。
Oracle 使用 ADD_MONTHS( 日期, -6 )
SQL Server 使用 DATEADD( mm, 日期, -6 )
MySQL 使用 DATE_SUB( 日期, INTERVAL 6 MONTH)
至于 如何多个字段确定一条数据。
这个不大清楚你的表是如何设计的。
一般情况下,是一个主键确定一条数据。
CREATE TABLE test_liupeng841121(
name VARCHAR(10),
year INT,
month INT,
sl INT
)
go
INSERT INTO test_liupeng841121
SELECT '福田',2010, 11, 72 UNION ALL
SELECT '东本',2010, 11, 85 UNION ALL
SELECT '古田',2010, 11, 123 UNION ALL
SELECT '福田',2010, 12, 96 UNION ALL
SELECT '东本',2010, 12, 34 UNION ALL
SELECT '福田',2011, 1, 78
go
SELECT
T_Now.name AS 名称,
T_Now.year AS 年,
T_Now.month AS 月,
T_Now.sl AS 当月数据,
T_Prev.sl AS 上月数据
FROM
test_liupeng841121 T_Now LEFT JOIN
test_liupeng841121 T_Prev
ON (
T_Now.name = T_Prev.name
AND (
(T_Now.year = T_Prev.year AND T_Now.month = T_Prev.month + 1)
OR
(T_Now.year = T_Prev.year + 1 AND T_Now.month = 1 AND T_Prev.month = 12)
)
)
ORDER BY
T_Now.name, T_Now.year, T_Now.month
-- 可以参考下,以下是MySQL的写法select count(1) from a where txdate between '2019-01-01' and '2019-07-01'
UNION
select count(1) from a where txdate between DATE_SUB('2019-01-01',INTERVAL 1 year) and DATE_SUB('2019-07-01',INTERVAL 1 year)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)