如何计算两行的差异 [英] How to calculate diiference for two rows

查看:67
本文介绍了如何计算两行的差异的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

下午好。每个人都有。我有桌子

<前lang =文字> id名字
100 Ramu
104 Pradeep
108 Sai
112 Balu



i想要计算id列的差值(104-100 = 4,108-104 = 4)i,ei必须显示此客户端的输出

<前lang =text> id区别名称
100 0 Ramu
104 4 Pradeep
108 4 Sai
112 4 Balu

任何人都可以告诉你怎么做...



感谢你

解决方案

  CREATE   #TEMP(ID  INT ,NAME  VARCHAR  100 ))
INSERT INTO #TEMP
SELECT ' 100',' Ramu'
UNION
SELECT ' 104'' Pradeep'
UNION
SELECT ' 108' ' Sai'
UNION
SELECT ' 112 '' Balu'

CREATE TABLE #TEMP_1(ID1 INT IDENTITY ,ID INT ,DIFF INT ,NAME VARCHAR 100 ))
INSERT INTO #TEMP_1(ID,NAME)
SELECT * FROM #TEMP
DECLARE @ C INT @ I INT @ D INT @ D1 INT @ D2 INT
SELECT @ C = COUNT(*) FROM #TEMP_1
SET @ I = 1
WHILE (@ I< = @ C)
BEGIN
IF (@ I%2 = 1) - - 原帖说IF(@I = 1)修正从评论中添加
BEGIN
SET @ D = 0
END
ELSE
BEGIN

SELECT @ D1 = ID FROM #TEMP_1 WHERE ID1 = @ I
< span class =code-keyword> SELECT
@ D2 = ID FROM #TEMP_1 WHERE ID1 = @ I-1
SET @ D = @ D1- @ D2
END
- SELECT @D
更新 A
SET DIFF = @ D
FROM #TEMP_1 A
WHERE ID1 = @ I

SET @ I = @ I + 1
结束

SELECT * FROM #TEMP_1
DROP #TEMP
DROP #TEMP_1


hi good afternoon every one.i have table

id  name
100 Ramu
104 Pradeep
108 Sai
112 Balu


i want to calculate difference(104-100=4,108-104=4) for id columns i,e i have to display output like this client

id   difference  name
100 0   Ramu
104 4   Pradeep
108 4   Sai
112 4   Balu

can any one please tell how to do this..

thanking you

解决方案

CREATE TABLE #TEMP(ID INT,NAME VARCHAR(100))
INSERT INTO #TEMP
SELECT '100','Ramu'
UNION
SELECT '104','Pradeep'
UNION
SELECT '108','Sai'
UNION
SELECT '112','Balu'

CREATE TABLE #TEMP_1(ID1 INT IDENTITY,ID INT,DIFF INT,NAME VARCHAR(100))
INSERT INTO #TEMP_1(ID,NAME)
SELECT * FROM #TEMP
DECLARE @C INT,@I INT,@D INT,@D1 INT,@D2 INT
SELECT @C=COUNT(*) FROM #TEMP_1
SET @I=1
WHILE(@I<=@C)
BEGIN
	IF(@I%2 =1)   -- original post said IF(@I =1) Fix added from comment
	BEGIN
		SET @D=0
	END
	ELSE
	BEGIN
		
		SELECT @D1=ID FROM #TEMP_1 WHERE ID1=@I
		SELECT @D2=ID FROM #TEMP_1 WHERE ID1=@I-1
		SET @D=@D1-@D2
	END
	--SELECT @D
	update A
	SET DIFF=@D
	FROM #TEMP_1 A
	WHERE ID1=@I
	
	SET @I=@I+1
END

SELECT * FROM #TEMP_1
DROP TABLE #TEMP
DROP TABLE #TEMP_1


这篇关于如何计算两行的差异的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆