按树形结构 无限层级显示各级公司的生产量
总公司
子公司1 产量10
子子公司A 产量10
子子公司B 产量10 子公司2 产量10
子子公司AA 产量10公司结构树形无限级定义显示没有问题 无非做个递归 treeview 显示难点在于父节点的产量至 都是汇总子节点产量值累加, 如一个三层结构 1层需要累加2层所有值 2层累加三层所有节点的值原计划设计为 只有末节点ID 记录产量值 一层层累加 这样最灵活 单效率最低
不知各位有什么好办法解决(因功能需求最好能实时查询 最好不用定时汇总功能)另外树形各级节点显示列 内容 比较多,treeview 只有view text 不够显示其他字段内容 能否有其他更好控件代替treeview ?
总公司
子公司1 产量10
子子公司A 产量10
子子公司B 产量10 子公司2 产量10
子子公司AA 产量10公司结构树形无限级定义显示没有问题 无非做个递归 treeview 显示难点在于父节点的产量至 都是汇总子节点产量值累加, 如一个三层结构 1层需要累加2层所有值 2层累加三层所有节点的值原计划设计为 只有末节点ID 记录产量值 一层层累加 这样最灵活 单效率最低
不知各位有什么好办法解决(因功能需求最好能实时查询 最好不用定时汇总功能)另外树形各级节点显示列 内容 比较多,treeview 只有view text 不够显示其他字段内容 能否有其他更好控件代替treeview ?
最后得到的一个cte或表值函数可以和你的基本表连接总sum或其他计算。
-- table : tb col : id parentid name qty ......
-- 最初的节点 parentid 假设为NULL
;with cte as
(
select id,parentid,id as pid from tb where parentid is null --得到所有初始节点
union all
select a.id,a.parentid,b.id
from tb a join cte b on a.parentid = b.id
)select c.name,sum(b.qty) sqty
from cte a join tb b on a.id = b.id
join tb c on a.pid = c.id
group by c.name