Amon_csdn 2019-03-22 11:14 采纳率: 0%
浏览 202

SQLSERVRE 怎么指定字段分组排序,再根据上一条数据的A字段更新这一条A字段

图片说明

sqlserver 一个表大概是这样的结构,‘累计’字段现在没有值的,要根据部门、日期,更新‘累计’字段。‘累计=剩余+昨天累计’,1号的昨天累计为null可以用0代替。

update语句应该怎么写。

  • 写回答

1条回答 默认 最新

  • 憧憬blog 2023-03-15 08:22
    关注

    根据您的描述,您需要使用 SQL Server 中的窗口函数来实现在字段分组排序后更新‘累计’字段的操作。具体的 SQL 语句如下:

    UPDATE tableA SET tableA.累计 = tableA.剩余 + ISNULL(LAG(tableA.累计, 1, 0) OVER (PARTITION BY tableA.部门 ORDER BY tableA.日期), 0) WHERE tableA.累计 IS NULL

    其中,LAG() 是一个窗口函数,用于获取上一条数据的‘累计’字段的值。ISNULL() 函数用于将第一个参数替换为第二个参数,如果第一个参数为 NULL 的话。PARTITION BY 用于指定字段分组,ORDER BY 用于指定分组排序的方式(按照日期升序排序)。

    希望我的回答对您有所帮助。

    评论

报告相同问题?

悬赏问题

  • ¥20 matlab计算中误差
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊