sqlserver 计算同比增长

/****** Script for SelectTopNRows command from SSMS  ******/
SELECT  [fdSequenceID]
      ,[fdInnerTime]
      ,[fdTime]
      ,[fdData]
      ,[fdState]
      ,[fdUpdateTime]
      ,[fdCreateTime]
  FROM [NewDBTest].[dbo].[tbDataMonthHG]

WITH f AS
(
  SELECT ROW_NUMBER()OVER(   partition by fdSequenceID ORDER BY fdTime) AS id, * FROM [NewDBTest].[dbo].[tbDataMonthHG]
)

select t.*,
       fdRate=(cast(cast(100*((t.fdData/NULLif(d.fdData,0))-1) as numeric(25,10)) as  varchar(50))+‘%‘ )   --小数变百分数
       from f t
left join f d on
       t.fdInnerTime = DateAdd(year,1,d.fdInnerTime) and t.fdSequenceID = d.fdSequenceID  --同比增长
       order by fdSequenceID,id asc
       
时间: 2024-10-13 04:51:14

sqlserver 计算同比增长的相关文章

sqlserver计算日期

在网上找到的一篇文章,相当不错哦O(∩_∩)O~ 这是计算一个月第一天的SQL 脚本:  SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0) --当月的第一天 SELECT DATEADD(mm, DATEDIFF(mm,0,getdate())-1, 0) --上个月的第一天 SELECT DATEADD(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0))  --当月的最后一天 SELECT DATEAD

Sqlserver 计算两坐标距离函数

mark if exists (select * from dbo.sysobjects where id = object_id(N'UF_ETL_GetDistance') and xtype in (N'FN', N'IF', N'TF')) drop function UF_ETL_GetDistance GO CREATE FUNCTION UF_ETL_GetDistance ( @sLng DECIMAL(12,6), @sLat DECIMAL(12,6), @eLng DECI

VMWare:云计算换挡加速才刚刚开始

(上图为新任VMWare全球副总裁.大中华区总裁郭尊华) 2015年底的时候,VMWare经历了比较大的变动.一方面是公司股票跌回了5年前的水平,即2010年云计算刚兴起的时候:另一方面是公司经历了管理层的变动,包括公司首席技术官.大中华区总裁在内的多位高管相继离去. 与此同时,VMWare无论在财报还是在产品领导力方面均有稳定的表现:2015年财报显示全年同比增长9%,按固定汇率计算同比增长12%:在Forrester的2016年第一季度混合云管理解决方案和私有云管理套件报告中被评为"行业领导

SqlServer中计算列详解

计算列区别于需要我们手动或者程序给予赋值的列,它的值来源于该表中其它列的计算值.比如,一个表中包含有数量列Number与单价列Price,我们就可以创建计算列金额Amount来表示数量*单价的结果值,创建Amount列后,在程序中需要使用计算金额这个值时,就不用取出Number列与Price列的值后相乘,而是直接取Amount列的值就可以了. 那么这个计算列要如何建立呢? 先看通过sql的方法创建: create table table1 ( number decimal(18,4), pric

sqlserver中计算结果保留小数

经常要保留小数,在程序中计算太麻烦了,还要转换操作.直接在数据库中操作来得方便. 把数据类型定义成decimal/numeric类型,小数位看需要随意设,除数与被除数必须要有一个为decimal/numeric中的类型, 如下例: SELECT 24.0000/38.0000     --0                            SELECT CAST(24/38 AS NUMERIC(18,4))         --0 SELECT CAST(24/38.0000 AS NU

sqlserver安装失败,此计算机上安装了 Microsoft Visual Studio 2008 的早期版本解决方法

安装sql server 2008 management,提示错误:此计算机上安装了 Microsoft Visual Studio 2008 的早期版本.请在安装 SQL Server 2008 前将 VS2008 升级到 SP1. 解决方法: 修改注册表. 运行注册表,将HKEYLocalMachine/Software/Microsoft/DevDiv 重命名就可以了. 安装好后再将其改回原样. 一切ok 原文地址:http://blog.csdn.net/eric88/article/d

mssql sqlserver 对不同群组对象进行聚合计算的方法分享

摘要: 下文讲述通过一条sql语句,采用over关键字同时对不同类型进行分组的方法,如下所示: 实验环境:sql server 2008 R2 当有一张明细表,我们需同时按照不同的规则,计算平均.计数.求和等聚合计算时,此时我们可以使用over子句对数据进行操作.例: 我们需获取一个学生成绩的 总平均分 各科平均分 学生单科成绩同平均分的差异,此时我们可以多次使用over子句,得出我们想要的结果, select [课程名], [姓名], [成绩], AVG([成绩]) over () as [总

SQLSERVER中计算某个字段中用分隔符分割的字符的个数

比如字段sid中用'|'分割的一些字符   a|b|c|d,需要通过sql查询出字符的个数是4. 可以使用如下脚本: SELECT LEN(sid)-LEN(REPLACE(sid,'|',''))+1 'NUM1',COUNT(1)'NUM2' FROM dbo.FM_PurchaseRequest WHERE ISNULL(sid,'')<>'' GROUP BY LEN(sid)-LEN(REPLACE(sid,'|',''))+1 ORDER BY 附件个数 DESC 原文地址:htt

sqlserver数据库的sql语句使用

             T-SQL查询语句 1. tansact-SQL编程语言 美国国家标准协会(ANSI)和国际标准组织(ISO)为 SQL定义了标准,微软通过用Transact-SQL和ANSI-SQL兼容,Transact-SQL还包含了几种能够增强性能的扩展. T-SQL的组成:   数据定义语言(Date Definition Language)语句简称DDL语句 DDL语句用来建立数据库,数据库对象(create,alter,drop) create object_name al