复杂的SQL数据计算问题
表结构如下
序号 桶号 标志 编码 材料名称 数量 单价 金额 类别
1 090301A001 1 0101 材料A 10 5 50 1
2 090301A001 1 0102 材料B 20 8 160 1
3 090301A001 1 0103 材料C 10 6 60 1
4 090301A001 2 090301A00101 混合料A 40 6.75 270 2
5 090301C002 1 0101 材料A 10 5 50 1
6 090301C002 1 090301A00101 混合料A 10 6.75 67.5 2
7 090301C002 1 0101 材料D 10 5 50 1
8 090301C002 2 090301A00101 混合料E 30 5.58333 167.5 2
标志为1表示配料,2表示配料好后入库
类别为1表示化工材料,2表示配好后的混合料
桶号是日期加班组加序号的型式来编的,编码如果是化工材料就是材料编码,如果是混合料就是配料编号.
如上面所示,用ABC三种材料组成混合料A,混合料E又由混合料A加一些化工材料组成,如果要算混合料E的价格要先算混合料A的价格,我的计算方法是先把所有的桶号找出来,再用游标进行遍历一桶一桶的算,可计算速度真的超级慢.一天下来的桶号有两三百个.我用存储过程在服务器上面计算的可计算要差不多二十分钟.而且在计算时其它电脑访问SQL服务器时超级慢.而且经常是第一次计算后发现单输错误修改后又重新计算.各位大侠们有没有什么好的方法可以改进一下.如不用游标之类,改用别的方法之类的,各位大侠们多给点意见,我服务器是至强2.8双CPU的,硬盘是两个SCSI 1W转做的RAID1 内存2G.