字段求值

kubou 2004-07-27 10:17:10
有表如下
字段0 字段1 字段2 字段3 字段4
數據 aa 200 2004/07/10 50 150
aa 200 2004/07/11 5 145
aa 200 2004/07/20 23 122
bb 500 2004/07/10 2 498
bb 500 2004/07/13 5 493
bb 500 2004/07/14 10 483
.........

現在問題就是如何根據前面字段0-3來計算出字段4的值
...全文
102 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
david_xu322 2004-07-28
  • 打赏
  • 举报
回复
kubou回復如下:
select 字段0,字段1,字段2,字段3,(select sum(字段3) from table m where
字段0=t.字段0 and 字段2<t.字段2 group by 字段0)
) 字段4
from table t
zjcxc 元老 2004-07-27
  • 打赏
  • 举报
回复
--示例

--示例数据
create table tb(字段0 varchar(10),字段1 int,字段2 datetime,字段3 int,字段4 int)
insert tb(字段0,字段1,字段2,字段3)
select 'aa',200,'2004/07/10',50
union all select 'aa',200,'2004/07/11',5
union all select 'aa',200,'2004/07/20',23
union all select 'bb',500,'2004/07/10',2
union all select 'bb',500,'2004/07/13',5
union all select 'bb',500,'2004/07/14',10
go

--更新字段4
update a set 字段4=(select max(字段1)-sum(字段3) from tb where 字段0=a.字段0 and 字段2<=a.字段2)
from tb a
go

--显示更新结果
select * from tb
go

--删除测试
drop table tb

/*--测试结果

字段0 字段1 字段2 字段3 字段4
---------- ----------- ------------------------- ----------- ---------
aa 200 2004-07-10 00:00:00.000 50 150
aa 200 2004-07-11 00:00:00.000 5 145
aa 200 2004-07-20 00:00:00.000 23 122
bb 500 2004-07-10 00:00:00.000 2 498
bb 500 2004-07-13 00:00:00.000 5 493
bb 500 2004-07-14 00:00:00.000 10 483

(所影响的行数为 6 行)
--*/
zjcxc 元老 2004-07-27
  • 打赏
  • 举报
回复
怎么计算法?

34,873

社区成员

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

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