两个dw数据相加的问题。在线等待,急死我了。

chdd 2002-04-06 02:51:36
我有:
型号 数量
dw_1 a 1
dw_2 a -1
想把dw_1中和dw_2中相同型号的数量提取出来计算后,放到dw_3中显示,并将数量添加到一个表A中。即:
dw_3 a 0
并且等下次再用的时候,要先清空表A中的数据,再重复刚开始的计算。
...全文
180 11 打赏 收藏 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Rasky 2002-06-18
  • 打赏
  • 举报
回复
回复daixf_csdn,
别忘了,他的计算条件是:
dw_1中和dw_2中相同型号的数量提取出来计算后,放到dw_3中显示,并将数量添加到一个表A中。
所以,根本不用考虑你说的那种情况
lesni 2002-04-07
  • 打赏
  • 举报
回复
dw_3的SqlSelect:
select a.name,a.count + b.count from a,b where a.name = b.name and ...
省略部分为原数据窗口的其他条件。
grt 2002-04-07
  • 打赏
  • 举报
回复
用游标也可以做,把dw1先插进表3,dw2根据相同型号的条件,数量相加后update,如果没有相同型号的记录就用插入作为表3的新记录。
圣殿骑士18 2002-04-06
  • 打赏
  • 举报
回复
上述方法有问题!!
关键是可能表1有的型号表2没有,或者刚好相反。
所以无论以表1还是表2作为双重循环的
第一重循环都不行,可能丢失某表的型号的数据。
应该如下解决:
1。首先要将表1,2的型号union得到记录集
2.根据型号记录集作循环,将两表的数据相加(如果某表没有此型号则为0)。
Rasky 2002-04-06
  • 打赏
  • 举报
回复
那就麻烦了,用方法2把逐个取出来相加再放回dw_3
long i, ll_row, ll_ins
string ls_xh//型号
decimal ld_sl//数量
for i = 1 to dw_1.rowcount()
ls_xh = dw_1.getitemstring(i, 'xh')
ll_row = dw_2.find("xh='"+ls_xh+"'",1, dw_2.rowcount())
if ll_row > 0 then
ld_sl = dw_1.getitemdecimal(i, 'sl')+dw_2.getitemdecimal(i,'sl')
else
ld_sl = dw_1.getitemdecimal(i, 'sl')
end if
if ld_sl > 0 then
ll_ins = dw_3.insert(0)
dw_3.setitem(ll_ins, 'xh', ls_xh)
dw_3.setitem(ll_ins, 'sl', ld_sl)
end if
next
if dw_3.update() > 0 then
commit;
else
rollback;
end if
考虑一下吧!不知道管不管用,没试过的

chdd 2002-04-06
  • 打赏
  • 举报
回复
我的表是从两个数据库中提取出来的。
zuoyangguang 2002-04-06
  • 打赏
  • 举报
回复
up
Rasky 2002-04-06
  • 打赏
  • 举报
回复
方法一好像好点,计算和的工作可交给数据窗口做
你只要把数据取出来放到dw_3中就可以了
banalman 2002-04-06
  • 打赏
  • 举报
回复
问题可这样解决 :
方法一 1 :建立两表的连接,如果是两张表是普通连接,通过型号即可
2 :计算数量之和,
3 :生成第三个数据窗的响应数据
方法二 通过程序
string ls_type1[],ls_type2,ls_type3//分别存储三个数据窗的型号数值
decimal ldec_num1[],ldec_num2[],ldec_num3[]//分别存储dw_1和dw_2 ,dw_3的数量字段的数值

ls_type1=dw_1.object.型号
ls_type2=dw_2.object.型号

ldec_num1=dw_1.object.数量
ldec_num2=dw_2.object.数量
int p=1
for i=1 to uperbound(ls_type1)
ls_type_tem=ls_type1[i]
for j=1 to uperbound(ls_type2)
if ls_type2 [j]=ls_type_tem then
ls_type3[p]=ls_type_tem
ldec_num3[p]=ldec_num1[i]+ldec_num2[j]
p=p+1
exit
else
continue
end if
next
next
//在数据窗3中插入响应的记录
if uperbound(ls_type3) >0 then
for q=1 to uperbound(ls_type3)
dw_3.object.data[q,1]=ls_type3[q] //型号
dw_3.object.data[q,2]=ldec_num3[q] //数量
next
end if
//如果数据窗仅供显示,可不必更新这样可不知是否符合你的需求?
圣殿骑士18 2002-04-06
  • 打赏
  • 举报
回复
笨办法,用循环解决吧。

chdd 2002-04-06
  • 打赏
  • 举报
回复
最好给出源码,我刚开始学习编程,请大家多多帮助。
【变分多谐波对偶模式追踪】从噪声信号中提取重复瞬态分量的方法(Matlab代码实现)内容概要:本文介绍了“变分多谐波对偶模式追踪”这一信号处理方法,旨在从含有噪声的信号中有效提取重复出现的瞬态成分。该方法结合了变分模态分解与多谐波分析的优势,通过构建对偶模式追踪模型,实现了对微弱瞬态特征的精准分离与增强,特别适用于机械故障诊断、生物医学信号处理等领域。文中详细阐述了算法原理、数学模型构建及其实现步骤,并提供了基于Matlab的代码实现,便于读者复现与应用。; 适合人群:具备一定信号处理基础,从事机械故障诊断、生物医学工程或相关领域的研究生及科研人员。; 使用场景及目标:①从强噪声背景中提取机械设备的周期性冲击信号以进行故障预警;②分析生物医学信号中的重复生理事件,如心电图或脑电图中的特定波形;③为需要高精度瞬态特征提取的研究提供可靠的算法支持与实现范例。; 阅读建议:此资源以Matlab代码实现为核心,不仅展示了算法的具体编程细节,还强调了理论与实践的紧密结合。学习者应在理解算法原理的基础上,动手运行并调试所提供的代码,通过改变参数观察结果变化,从而深入掌握该方法的应用技巧与优化策略。
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究(Matlab代码实现)内容概要:本文研究了非线性值迭代自适应动态规划(ADP)方法,旨在解决离散时间非线性系统的最优控制问题。通过构建近似动态规划框架,结合值迭代算法,利用函数逼近器(如神经网络)对系统代价函数进行学习与优化,逐步逼近最优控制策略。文中详细阐述了算法的数学推导、收敛性分析及其实现流程,并以典型非线性系统为例,采用Matlab进行仿真验证,展示了该方法在处理复杂非线性系统优化控制方面的有效性与优越性。; 适合人群:具备自动控制理论、最优化方法及Matlab编程基础的研究生、科研人员以及从事智能控制、工业自动化等相关领域的工程技术人员。; 使用场景及目标:①研究和解决离散时间非线性系统的最优控制问题;②学习和掌握自适应动态规划(ADP)及值迭代算法的核心思想与实现技巧;③利用Matlab进行先进控制算法的仿真与验证,为复杂系统控制设计提供理论依据和技术支持。; 阅读建议:此资源侧重于理论与实践的结合,建议读者在学习过程中,不仅关注算法的数学推导,更要动手实践Matlab代码,通过调整参数、更换被控对象等方式加深理解,并尝试将其应用于其他类型的非线性系统控制问题中。

1,111

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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