高分寻求算法!!!!!!

andyfing 2002-05-10 06:01:15
SQL SERVER数据库
字段如下:
ID 上级ID 点数 假设值有10多万,例数据如下
……
1 0 78
2 1 60
3 1 61
4 1 60
5 3 45
6 2 45
7 3 40
8 2 30
8 2 40
……
如此类推,类似一个树形结构
现在我要算每一ID和属于他的ID的差点数之和即

ID=2
差点数=(60-45)+(60-30)+(60-40)
当数据很多时,该如何做最好?
...全文
60 22 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
andyfing 2002-05-15
  • 打赏
  • 举报
回复
是呀,
1。现在又加了一个,求本节点与次级从属点数差
2。假设某一个节点取消,他的从属节点怎么算的问题
3。加了一个等级字段,当符合某条件的时候,则升级,(我想用触发器解决)
andyfing 2002-05-15
  • 打赏
  • 举报
回复
是呀,
1。现在又加了一个,求本节点与次级从属点数差
2。假设某一个节点取消,他的从属节点怎么算的问题
3。加了一个等级字段,当符合某条件的时候,则升级,(我想用触发器解决)
ihihonline 2002-05-15
  • 打赏
  • 举报
回复
这个问题还没有解决?
andyfing 2002-05-15
  • 打赏
  • 举报
回复
我不仅 要他的直接从属,并且需要,次级从属
用with cube怎么样呢?
ihihonline 2002-05-15
  • 打赏
  • 举报
回复
1:好办,按上边的方法也可以将其做出;
2:是一个反查的过程,现保存,求值、删除;
3:升级如何理解啊?
ihihonline 2002-05-15
  • 打赏
  • 举报
回复
1:好办,按上边的方法也可以将其做出;
2:是一个反查的过程,现保存,求值、删除;
3:升级如何理解啊?
llsyhy 2002-05-15
  • 打赏
  • 举报
回复
我没有看懂你的问题怎么帮你呀!
andyfing 2002-05-15
  • 打赏
  • 举报
回复
所有的操作都是对整个表操作!!
riddler 2002-05-11
  • 打赏
  • 举报
回复
关注
Cipherliu 2002-05-11
  • 打赏
  • 举报
回复
我在delphi中做过类似的树操作,首先要解决遍历的问题,我是用队列数据结构实现的。
1.搜索上级ID为0的记录(第一级节点),进入队列。
2.队头出队,同时搜索队头的所有直接下级进入队列。
3.重复步骤2,直至队空。

队列在Delphi中实现可以借助于TList,或TStringList也可以。

这种算法的好处在于可以快速遍历,而且对你的数据库中记录的顺序问题没有要求。子节点的ID可以小于父节点的ID。

erp2 2002-05-11
  • 打赏
  • 举报
回复
SEE
ihihonline 2002-05-11
  • 打赏
  • 举报
回复
//上边最后一句没有用处,不好意思
ihihonline 2002-05-11
  • 打赏
  • 举报
回复
在delphi中,如果是查到一个ID时,对本ID进行操作,可以:

with query1 do
begin
close;
sql.clear;
sql.add('select * from youtable');
first;
combobox1.clear;
with combobox1.items do
begin
wile not (qeury1.eof) do
begin
add(fieldbyname('id').asstring);
next;
end;
end;
end;

=====================关键====================
combobox1onchange
begin
with query1 do
begin
close;
sql.clear;
sql.add('select 点数 from youtable where ID = :ID');
parambyname('ID').asstring(asInteger):=combobox1.text(Strtoint(combobox1.text));
open;
end;
with query2 do
begin
close;
sql.clear;
sql.add('select 点数 from youtable where 上级ID = :value ');
parambyname('上级ID').asstring(asInteger) :=combobox1.text;
open;
end;
end;

计算:
begin
result := 0;
query2.first;
with query2 do
beign
while not (query2.eof) do
begin
result := result + (query1.fieldbyname('点数').asfloat-fieldbyname('点数').asfloat);
Next;
end;
end;
//你自己试一下,我没有数据,也无法调式;
result := query1.fieldbyname('点数')
firetoucher 2002-05-11
  • 打赏
  • 举报
回复
用存储过程返回记录集啊
ihihonline 2002-05-11
  • 打赏
  • 举报
回复
其实你可以通过建临时表;
要以吧问题进行简化;
想问你一点,你所有的这一切是想在sql server里执行还是在delphi 的程序员执行?是一起执行还是查到某个id时,执行某个id?有没有返回结果的那个字段
等……
andyfing 2002-05-11
  • 打赏
  • 举报
回复
这样的树形结构,在DEPHI里我该怎样操作呢?用什么控件?怎么用?
如能详细帮我的请
QQ:7207002
andyfing 2002-05-11
  • 打赏
  • 举报
回复
各位请到相关帖子接分,
本贴暂不结分,请见谅,我还有相关问题请教。
只要回答,即加分,
并请,答案雷同不必重复
谢谢
renzhm 2002-05-10
  • 打赏
  • 举报
回复
select 差和=(点数*(select count(上级ID) fro db where 上级ID=a.ID)-
(select sum(点数) from db where 上级ID=a.ID))
from db a
group by a.ID
短歌如风 2002-05-10
  • 打赏
  • 举报
回复
只统计直接从属的节点吗?
Select ID, Sum(PointSub)
From
(Select PrimTab.ID as ID,PrimTab.点数-SecTab.点数 as PointSub
from MyTab PrimTab,MyTab SecTab
Where PrimTab.ID = SecTab.上级ID
)
//Where ID = 2
Group By ID
建议把子查询先写成一个视图。


____ ____
\ p \ / g /
\ l \_/ n /
\ a o /
\ i s /
\ n /
\_/
Cipherliu 2002-05-10
  • 打赏
  • 举报
回复
我用了好长时间帮你调出了一个算法,用一句话实现你的要求。
假设你的表名为TreeNodes,先增加一个字段“点数差”,然后执行下面的SQL语句
update treenodes set 点数差=
(select count(*) from Treenodes Q where Q.上级ID=treenodes.ID)*点数-
(select Sum(点数) from Treenodes P where P.上级ID=treenodes.ID group by 上级ID )

朋友,多给点分吧!
加载更多回复(2)
内容概要:本文提出了一种针对高效率视频编码(HEVC)标准下开源编解码器x265的率失真复杂度优化(RDCO)算法。传统上,率失真优化主要关注编码比特限制下的失真最小化。但本文创新之处在于引入了计算复杂度这一关键因素,在编码过程中优化率失真性能的同时兼顾了计算复杂度的要求。为此,作者首先提出了基于绝对差值和(SAD)快速预测方法获取每个编码单元(CU)的R-D成本,并估算置信水平以评估CTU分区模式的可靠性。接着,计算了不同模式的计算复杂度并建立CLEC曲线,以此为基础进行合理的复杂度分配从而实现了最佳编码效果。实验结果显示提出的RDCO算法显著提高了编码性能,并能适应广泛的编码速度要求,在保持同等计算复杂度情况下相比原有x265降低了BD-rate最多19.73%,平均减少6.59%, 同时增加了BD-PSNR最高可达0.48dB以及平均水平为0.13dB。 适合人群:视频压缩领域的研究人员和技术专家,特别是那些对HEVC及其具体实现x265有兴趣或者正在寻求提高编码质量和速度的专业人士。 使用场景及目标:该方法特别适用于需要精细控制视频流编码过程中涉及到的时间延迟和质量折衷的应用场景。比如直播视频传输中既要保障流畅播放又想尽量保留图像画质的情况。此外,本研究表明可以为不同设备提供灵活多变且高效的编码选项。 其他说明:文中提到的具体实验数据均来自于四个官方测试序列——ParkScene、Kimono、Cactus 和 BQTerrace 上的表现。而所提方法已经在多个其他高分辨率测试集如1080p视频片段进行了验证测试确保了结论普适性和实用性。

5,928

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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