求sql:修改为累加值(update,sum)

jimever 2015-09-30 04:46:27
表store结构
仓库编号ckid、物品编号wzid、库存kc、合计库存total
现在要根据前三个字段值,计算合计库存
即类似:total=sum(kc) where ckid和wzid都相同

求这个sql怎么写

...全文
771 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
jimever 2015-10-08
  • 打赏
  • 举报
回复
引用 3 楼 xueke_123 的回复:
select ckid,wzid,kc,SUM(kc) over(partition by ckid,wzid )as total from store 
是修改和查询可以合并为一条sql吗
hhhttt_ 2015-10-07
  • 打赏
  • 举报
回复
select ckid,wzid,kc,SUM(kc) over(partition by ckid,wzid )as total from store 
jimever 2015-10-05
  • 打赏
  • 举报
回复
引用 1 楼 wmxcn2000 的回复:

-- 都回家过节了,人不多了

create table store(ckid int , wzid int , kc int , total int )
go
insert into store values
(1,1,100,0),
(1,1,100,0),
(1,1,102,0),
(1,2,120,0),
(1,2,130,0),
(2,4,100,0),
(2,4,900,0),
(2,5,800,0)
go
select * from store 
go
with m as (
select * , sum(kc) over(partition by ckid,wzid ) hj from store
)
-- select * from m  -- 仅查询
update m set total = hj  -- 回写到total 列
go
select * from store 
go
drop table store 
go


(8 行受影响)
ckid        wzid        kc          total
----------- ----------- ----------- -----------
1           1           100         0
1           1           100         0
1           1           102         0
1           2           120         0
1           2           130         0
2           4           100         0
2           4           900         0
2           5           800         0

(8 行受影响)


(8 行受影响)
ckid        wzid        kc          total
----------- ----------- ----------- -----------
1           1           100         302
1           1           100         302
1           1           102         302
1           2           120         250
1           2           130         250
2           4           100         1000
2           4           900         1000
2           5           800         800

(8 行受影响)


多谢,这样写是可以的。但是我要用一条sql语句可以实现吗
卖水果的net 版主 2015-09-30
  • 打赏
  • 举报
回复

-- 都回家过节了,人不多了

create table store(ckid int , wzid int , kc int , total int )
go
insert into store values
(1,1,100,0),
(1,1,100,0),
(1,1,102,0),
(1,2,120,0),
(1,2,130,0),
(2,4,100,0),
(2,4,900,0),
(2,5,800,0)
go
select * from store 
go
with m as (
select * , sum(kc) over(partition by ckid,wzid ) hj from store
)
-- select * from m  -- 仅查询
update m set total = hj  -- 回写到total 列
go
select * from store 
go
drop table store 
go


(8 行受影响)
ckid        wzid        kc          total
----------- ----------- ----------- -----------
1           1           100         0
1           1           100         0
1           1           102         0
1           2           120         0
1           2           130         0
2           4           100         0
2           4           900         0
2           5           800         0

(8 行受影响)


(8 行受影响)
ckid        wzid        kc          total
----------- ----------- ----------- -----------
1           1           100         302
1           1           100         302
1           1           102         302
1           2           120         250
1           2           130         250
2           4           100         1000
2           4           900         1000
2           5           800         800

(8 行受影响)


通过慢sql分析的学习,了解什么是慢sql,以及慢SQL会引起那些性能问题。清楚慢sql日志的设置,然后再通过慢sql分析工具的学习,清楚慢sql分析的步骤和流程。慢sql分析工具:mysqldumpslow工具、explain工具、profile工具、Optimizer Trace工具。 提供课程中所使用的sql语句。 课程内容:第一章:课程简介1、课程介绍2、课程大纲 第二章:慢sql简介1、慢sql简介2、慢sql会引起的问题 第三章:慢日志的设置1、慢sql的分析流程2、慢日志参数理解3、慢日志参数设置:第1种方式:my.ini文件设置4、慢日志参数设置:第2种方式:sql脚本设置5、慢日志参数设置-效果验证 第四章:如何发现慢sql1、如何发现慢sql:第1种方式:慢日志文件2、如何发现慢sql:第2种方式:mysql库的slow_log表 第五章:慢sql分析工具1、慢sql提取-mysqldumpslow工具-使用方法2、慢sql提取-mysqldumpslow工具-操作实战3、慢sql的执行计划分析-explain分析-执行计划结果说明4、慢sql的执行计划分析-explain分析-索引介绍+type类型举例5、慢sql的资源开销分析-profile分析-分析步骤6、慢sql的资源开销分析-profile分析-show profile执行阶段说明7、慢sql的资源开销分析-profile分析-完整列表说明+操作实战8、慢sql的跟踪分析-Optimizer Trace分析-分析步骤9、慢sql的跟踪分析-Optimizer Trace表的介绍10、索引失效场景举例 第六章:慢日志清理1、慢日志清理

34,575

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧