逐级更新的问题,怎么写大师们

神驹 2014-08-16 08:38:22
有一个表
A表记录如下:
fnumber fname flevel fitemid parent data
1 a 1 1 0 0
2 b 2 2 1 0
3 c 2 2 1 0
4 d 2 4 0 0
5 e 5 5 4 10
上表,如何根据 flevel级次,把最大级数据一级一级更新到data字段,其中parent 记录他的上级id ,fitemid与parent相等的记录就是相关记录下级?
...全文
140 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
xzb001 2014-08-17
  • 打赏
  • 举报
回复

/* 使用递归表达式,需要sqlserver2005及以上 */
/* 假设源表为Test */
with Test (fnumber, fname, flevel, fitemid, parent, data) as
(
 select 1, 'a', 1, 1, 0, 0 union all
 select 2, 'b', 2, 2, 1, 0 union all
 select 3, 'c', 2, 2, 1, 0 union all
 select 4, 'd', 2, 4, 0, 0 union all
 select 5, 'e', 5, 5, 4, 10
)

, S1 as
(
select fnumber, fname, flevel, fitemid, parent, data
from Test
where fitemid not in (select parent from Test)
union all
select Test.fnumber, Test.fname, Test.flevel, Test.fitemid, Test.parent, data = Test.data + S1.data
from S1 inner join 
     Test on S1.parent = Test.fitemid
)

select *
from S1
order by fnumber
save4me 2014-08-16
  • 打赏
  • 举报
回复
有没有使用联级更新触发器?
lzw_0736 2014-08-16
  • 打赏
  • 举报
回复
最好列出想要的结果
书的作者Charles Petzold是著名的《Programming Windows》的作者。全书风趣幽默,生动活泼,充满生活中的实例和直观的插图。虽以“编码”为题,却是以“编码”为主线,深入浅出地讲解了逻辑代数、离散数学、数字电路、微机原理、汇编语言、编译原理和操作系统等计算机原理方面的基础知识。与计算机专业课本相比,没有艰涩的定义和描述,充分地把抽象的内容形象化了。它可以被定位为大众化的计算机科普书籍,然而与一般的国内计算机科普读物相比,它的信息量、专业程度绝对是高一个层次的。因此很适合对计算机有一定应用基础,有兴趣了解一点计算机机理的朋友。同时也可作为学习数字电路、微机原理等课程的启发性引论。   对于计算机专业学生,我觉得此书同样非常值得一看。就个人体会,举一二例:在看到二进制的加减实现那块,虽然自己原先清楚那些概念和方法,但是基于死板的公式和法则的,没有一个直观的体会。而在《CODE》中,分别釆用实物、简单电路、十进制数进行类比,逐步揭示了补码、加法器等机理,可谓温故而知新。阅读书中对汇编语言在各个章节循序渐进的引入,才发现原来汇编那些“古怪”的逻辑竟是如此的自然。而书中对数字电路的阐述完全是基于计算机实际应用的,从逻辑电路到触发器、存储器,直至微处理芯片,每一步在讲解电路原理的同时都辅以如何达到应用目的,让人不会觉得空洞和抽象。   此书比较注重内容的历史连贯性,各个章节都提及了相关技术的发展史,让我们认识到数字技术与计算机的发明及应用是一个逐级推进的历史过程。同时一些趣闻轶事也使我们开怀一笑。另一个特点是书中的不少东西是可以亲自实践的(通过实物或软件仿真),比如一些简单数字电路的实现。这很可能激发一些朋友自己造一块CPU的冲动。   高手高就高在把深奥的理论知识平民化了。总之,我觉得如果你是计算机专业学生,读了《CODE》,也许会发现原来还有一些简单的道理自己并不清楚,有茅塞顿开之感。而对不了解计算机的人来说,你将会豁然开朗——原来计算机并不神秘!

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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