首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sql查询,将单元格值设置为另一列中另一个单元格之间的差减去先前的结果。

sql查询,将单元格值设置为另一列中另一个单元格之间的差减去先前的结果。
EN

Stack Overflow用户
提问于 2019-02-20 13:55:35
回答 1查看 130关注 0票数 2

我尝试了以下查询,但它引发了错误,

当子查询未引入时,只能在select列表中指定一个表达式

代码语言:javascript
复制
UPDATE dbo.SFData 
SET KPIperMonth =
    (SELECT KPIValue, KPIValue - LAG(KPIValue) OVER (ORDER BY SFID) PreviousValue
     from dbo.SFData)

我有一张桌子如下

代码语言:javascript
复制
SFID|KPIValue|KPIperMonth
---------------------
1   |1       |
2   |3       |
3   |5       |

上表显示了以月份KPIValue为单位的销售累计总和。我希望这些结果:

代码语言:javascript
复制
SFID|KPIValue|KPIperMonth
---------------------
1   |1       |1
2   |3       |2 (3-1)
3   |5       |2 (5-3)
EN

回答 1

Stack Overflow用户

发布于 2019-02-20 14:27:11

试试这个:

代码语言:javascript
复制
WITH Previous_KPI AS
(
    SELECT SFID, KPIValue, KPIValue - LAG(KPIValue,1,0) OVER (ORDER BY SFID) PreviousValue
    FROM SFData
)

UPDATE 
    SFData
SET 
    SFData.KPIperMonth = Previous_KPI.PreviousValue
FROM
    SFData 
    LEFT JOIN Previous_KPI
        ON SFData.SFID = Previous_KPI.SFID
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54788051

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档