日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 综合教程 >内容正文

综合教程

sqlserver 计算同比,环比增长

發(fā)布時(shí)間:2024/1/3 综合教程 38 生活家
生活随笔 收集整理的這篇文章主要介紹了 sqlserver 计算同比,环比增长 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
/****** 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))+'%' )   --小數(shù)變百分?jǐn)?shù)
       from f t
left join f d on
       t.fdInnerTime = DateAdd(year,1,d.fdInnerTime) and t.fdSequenceID = d.fdSequenceID  --同比增長(zhǎng)
       order by fdSequenceID,id asc 
       

環(huán)比增長(zhǎng):

WITH f AS 
(
  SELECT ROW_NUMBER()OVER(   partition by fdSequenceID ORDER BY fdTime) AS id, * FROM [NewDBTest].[dbo].[tbDataMonthHG] where fdSequenceID <100
)
 
select t.*,
       fdRate=(cast(cast(100*((t.fdData/NULLif(d.fdData,0))-1) as numeric(25,10)) as  varchar(50))+'%' )   --將分?jǐn)?shù)變?yōu)榘俜謹(jǐn)?shù)
       from f t
       
left join f d on
       t.fdInnerTime = DateAdd(month,1,d.fdInnerTime) and t.fdSequenceID = d.fdSequenceID   --獲取根據(jù)時(shí)間獲取上月時(shí)間
       order by fdSequenceID,id asc 

某一時(shí)間點(diǎn)與相鄰的上一個(gè)時(shí)間的增長(zhǎng)

WITH f AS 
(
  SELECT ROW_NUMBER()OVER(   partition by fdSequenceID ORDER BY fdTime) AS id, * FROM [NewDBTest].[dbo].[tbData]
)
SELECT  
  t.fdSequenceID,t.fdInnerTime,t.fdTime,t.fdData,t.fdState,t.fdUpdateTime,t.fdCreateTime,t.id,
  (select cast(cast(100*((t.fdData/NULLif(d.fdData,0))-1) as numeric(35,10)) as  varchar(50))+'%') AS fdRate
  from f t 
  LEFT JOIN f d on t.id=d.id+1 where t.fdSequenceID = d.fdSequenceID  ORDER by t.fdSequenceID ASC 
  

-- 不會(huì)返回null



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

select t.*,
       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 datediff(day, 
                   DateAdd(day,d.id-1,DateAdd(month,d.fdSequenceID-1,'1900-1-1')),
                   DateAdd(day,t.id-1,DateAdd(month,t.fdSequenceID-1,'1900-1-1'))
                   ) > 0

-- 會(huì)返回null

總結(jié)

以上是生活随笔為你收集整理的sqlserver 计算同比,环比增长的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。