这个问题的标题,因为我发现很难简明我想解释什么是可能的措辞不当,除了提供一些演示数据。SQL查询来添加计算字段,比较数据行
我有一个查询,从SQL表返回以下数据:
ID Job User Amount
1 101 Bob 100
2 101 Pete 500
3 102 Bob 400
4 102 Pete 200
5 101 Pete 850
6 102 Bob 650
我要的是查询也返回调用(差)的附加字段,其中包含的金额之间的差额连续输入同一用户和作业。因此,我想返回将是作为数据如下:
ID Job User Amount Diff
1 101 Bob 100 100
2 101 Pete 500 500
3 102 Bob 400 400
4 102 Pete 200 200
5 101 Pete 850 350
6 102 Bob 650 250
在第一四行中,DIFF是一样的量,因为每个是每个用户的第一个条目每工作(因此的差与计算的参考起始金额零有效)。
最后两行包含一个用户名和作业组合已经出现在该表之前的信息,因此DIFF计算如下:
Job 101 User Pete 850 - 500 = 350
Job 102 User Bob 650 - 400 = 250
我从来没有来比较像行数据这在之前的SQL查询中并不真正知道从哪里开始。任何帮助将非常感激。
加入
请注意金额不是运行总额。这是定期对每个特定工作中的用户输入值进行的主观评估。金额可能实际上从一次评估下降到下一次评估。我想要的是一个查询,它返回连续评估“金额”之间的差异。
替代解释
我正在寻找返回已评估金额的变动历史记录。所以另一个例子,在看一个单一的作业和用户如下:
Job User Amount Movement
101 Bob 100 100
101 Bob 500 400
101 Bob 400 (100)
101 Bob 1,000 600
然而,按照最初的例子,将需要从包含大量的就业机会和用户都混一个表中提取此信息。
什么版本的SQL Server吗? – gbn
此外,为什么ID = 5金额850但ID = 6金额650?对于ID 5,您已将以前的101,Pete对的金额相加。但对于ID 6,您有当前的金额。这是每对货品的“第一价值”吗?或每对“以前的价值”? – gbn
缺少日期/时间列,是否由_ID值的顺序来定义_consecutive_? – HABO