数据算法求解 60CSDN]

发布时间:2017-2-20 0:34:34 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"数据算法求解 60CSDN]",主要涉及到数据算法求解 60CSDN]方面的内容,对于数据算法求解 60CSDN]感兴趣的同学可以参考一下。

现有两个表:table1,table2 table1(assm,part,cnt,fty) table1的字段含义是由cnt个part 组成一个assm ,fty是工厂字段。 table2(item,part,cnt,fty) table2的字段含义是由cnt个part 组成一个item ,fty是工厂字段。 现在要通过上面两个表得到一个table3 table3(item,assm,cnt,fty) table3的字段含义是由cnt个assm组成一个item,fty是工厂字段 现在是通过一个游标遍历整个table1表,找到在table2中的对应组成,但是由于数据量大,速度很慢,诚恳各位指点指点,在线等候。

把你的存储过程贴出来。

表结构不够清楚,另外,table1和table2的关系呢?存在多曾包含关系吗?

你现在用的sql语句是什么?

declare @table1 table(assm varchar(20),part varchar(20),cnt int,fty varchar(20)) /*table1的字段含义是由cnt个part 组成一个assm ,fty是工厂字段。*/ insert @table1   select 'assm1','part1',2,'工厂1' union   select 'assm1','part2',3,'工厂1' union   select 'assm2','part1',4,'工厂2' declare @table2 table(item varchar(20),part varchar(20),cnt int,fty varchar(20)) /*table2的字段含义是由cnt个part 组成一个item ,fty是工厂字段。*/ insert @table2   select 'item1','part1',4,'工厂1' union   select 'item1','part2',9,'工厂1' union   select 'item2','part1',20,'工厂2' /*现在要通过上面两个表得到一个table3 table3(item,assm,cnt,fty) table3的字段含义是由cnt个assm组成一个item,fty是工厂字段 */ select item,assm,cnt=b.cnt/a.cnt,a.fty   from @table1 a,@table2 b  where a.fty = b.fty    and a.part = b.part /* item     assm    cnt        fty item1 assm1 2 工厂1 item1 assm1 3 工厂1 item2 assm2 5 工厂2 */

Select Table2.item,Table1.assm,(Table1.cnt%Table2.cnt) as Cnt,Table1.fty from Table1,Table2 where Table1.fty=Table2.fty and Table1.part=Table2.part 当然我这语句中,前提是某一个FACTORY中的某一PART在这两个数据表中都存在。如果不是的话,你要用左连接之类的,但是写法应该还是这样,试试吧

sorry!应该为: select item,assm,cnt=max(b.cnt/a.cnt),a.fty   from @table1 a,@table2 b  where a.fty = b.fty    and a.part = b.part   group by a.fty,assm,item /* item     assm    cnt        fty item1 assm1 3 工厂1 item2 assm2 5 工厂2 */

上一篇:SQLSERVER2005 SSIS,如何将tinyint类型转换成binary(1)? 20CSDN]
下一篇:TDS 流中发生协议错误 100CSDN]

相关文章

相关评论