请求一条生成合计值的Update语句?
DM(代码) BT(标题) JB(级别)SJDM(上级代码) PF(得分)
00000001 1 测试仪技术性能指标1NULL?
00000005 1.1 仪表品牌2000000011
00000023 1.2 显示屏及界面要求2000000012
00000024 1.3 文件存储2000000011
00000025 1.4 测试结果转储2000000012
00000026 1.5 电池2000000011
00000027 1.6 E1测试功能200000001?
00000028 1.6.1 E1帧格式3000000272
00000029 1.6.2 E1时钟3000000271
00000030 1.6.3 E1测试图案3000000270.5
00000033 1.7 数据测试功能200000001?
00000034 1.7.1 接口3000000331
00000035 1.7.2 接口速率3000000331.5
00000036 1.7.3 数据通讯3000000331
00000037 1.7.4 数据监视3000000332
00000002 2 数据误码测试仪技术其它1NULL?
00000006 2.1 质量保证期2000000021
00000007 2.2 质量保证期后的维护2000000021
00000008 2.3 投标文件的完整性、2000000021
00000009 2.4 其他技术偏差2000000021
根据上述的表结构,要求写一条update语句更新小计值,如标题为1,1.6,1.7, 2的合计项,其合计分(PF)是根据本身下一级的合计值计算得出后直接填入。
[解决办法]
update t1 set PF = (selecct sum(PF) from tablename where sjdm = t1.dm)
from tablename t1
where PF = '? ' --这里是筛选你需要更新数据的列
[解决办法]
他的子是不止一的。
另外,主,你的原始是怎的?是不是只有最底的字的PF才有值?
[解决办法]
update 表
set PF=(select sum(isnull(a.PF,0)) from 表 a where left(a.BT,charindex( '. ',a.BT)-1)=表.BT)
from 表
where len(BT)-len(replace(表.BT, '. ', ' '))=1
如果找最上级where charindex( '. ',表.BT)=0