程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> SQL技巧:階梯式累減

SQL技巧:階梯式累減

編輯:關於SqlServer

與階梯式累加正好相反

 

--1 創建一個臨時表,數據如下



SELECT * INTO #t
  FROM ( SELECT ''a1'' t1, 440 t2,1 t3 UNION
         SELECT ''a2'' t1, 445 t2,2 t3 UNION
         SELECT ''a3'' t1, 253 t2,3 t3 UNION
         SELECT<span style="COLOR: #000000"> ''a4'' t1, 509 t2,4 t3 UNION
         SELECT ''a5'' t1, 376 t2,5 t3 UNION
         SELECT ''a6'' t1, 142 t2,6 t3 ) a

SELECT * FROM #t

 

--2 結果
/*
t1   t2          t3
---- ----------- -----------
a1   440         1
a2   445         2
a3   253         3
a4   509     &n

bsp;   4
a5   376         5
a6   142         6
*/


--3 階梯式累減



SELECT b1.*,
       b1.t2-(SELECT TOP 1 t2 FROM #t b2 WHERE b1.t3<b2.t3) result
 FROM  #t b1

 

--4 結果
/*
t1   t2          t3          result
---- ----------- ----------- -----------
a1   440         1           -5
a2   445         2           192
a3   253         3           -256
a4   509         4           133
a5   376         5           234
a6   142         6           NULL
*/ 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved