日期:2014-05-17  浏览次数:20487 次

跪求高手解答 sqlite3 在一列插入从0到n的数字
本帖最后由 huyidao88116 于 2013-05-12 22:03:26 编辑
根据表1,2,3的内容,插入表4
1.物理扫描链链路信息表PhysicalBSChain 
ID 链编号 网表中BS器件名 网表中BS器件封装名 器件在网表中的顺序(从TDI到TDO编号)  链上BS器件数
1  1  U1  JT_PACKAGE  1  2
2  1  U2  JT_PACKAGE  2  2
3  2  U3  JT_PACKAGE  1  2
4  2  U4  JT_PACKAGE  2  2
                                
2.BSDL器件名与封装匹配信息表BSDL_DeviceNamePackageMatched 
ID BSDL文件中器件名 网表中器件名 BSDL器件类型ID
  BSDL中封装名 网表中封装名
1  sn74bct8244a  U1  1  JT_PACKAGE  JT_PACKAGE
2  sn74bct8244a  U2  1  JT_PACKAGE  JT_PACKAGE

3.BSDL器件类型表  BSDLDeviceType
BSDL器件类型ID BSDL器件类型名 BSDL文件名 BSC个数 BS指令长度 TCK最高时钟
1  sn74bct8244a          sn74bct8244a.bsd  9  8  50.00e6
2  sn74bct8245a_ab       sn74bct8245a_ab.bsd  9  8  10.00e6

1.根据表1中的链编号按器件在网表中的顺序找出网表中的BS器件名
(如表1当链编号=1时获得的是U1 U2,当链编号=2时获得的是U3 U4)
2.再根据得到的网表中的BS器件名,对应表2中的网表中的器件名,找到BSDL器件类型ID(如查链1按照器件在网表中的顺序的所有的网表中的BS器件的BSDL器件类型ID得到U1的BSDL器件类型ID=1和U2的BSDL器件类型ID=1)
3.再根据得到的BSDL器件类型ID,对应表3中的BSDL器件类型ID,获取相应的各器件的BSC个数(如BSDL器件类型ID=1时获得个数为36)

根据以上获得的结果插表4: 
    首先,插入的是链1,在链路号这一列插入18个1;在器件名这一列先插入9个U1后再插入9个U2;在器件在链路中序号这一列先插入9个1后再插入9个2;在Cell在链路中序号这一列插入数值0~17(因为U1+U2的BSC个数=9+9=18);在器件中Cell对应的num这一列插入0~8,0~8。
   再次,插入链2,同链1一样操作。

 结果举例:
    工作链路CELL信息表TestingLinkCellInfo
ID 链路号 器件名 器件在链路中序号 Cell在链路中序号 器件中Cell对应的num
1 1 U1 1 0 0
2 1 U1 1 1 1
3 1 U1 1 2 2
4 1 U1 1 3 3
5 1 U1 1 4 4
6 1 U1 1 5 5
7 1 U1 1 6 6
8 1 U1 1 7 7
9 1 U1 1 8 8
10 1 U2 2 9 0
11 1 U2 2 10 1
12 1 U2 2 11 2
13 1 U2 2 12 3
14 1 U2 2 13 4
15 1 U2 2 14 5
16 1 U2 2 15 6
17 1 U2 2 16 7
18 1 U2 2 17 8
19 2 U3 1 0 0
20 2 U3 1 1 1
21 2 U3 1 2 2
22 2 U3 1 3 3
23 2 U3 1 4 4
24 2 U3 1 5 5
25 2 U3 1 6 6
26 2 U3 1 7 7
27 2 U4 2 8 0
28 2 U4 2 9 1
29 2 U4 2 10 2
30 2 U4 2 11 3
31 2 U4 2 12 4
                
求高手解答,谢谢大家!
SQLite3

------解决方案--------------------
create table PhysicalBSChain (ID integer primary key,	[链编号] int,[网表中BS器件名] varchar(20),[网表中BS器件封装名] varchar(20),[器件在网表中的顺序(从TDI到TDO编号)] int,[链上BS器件数] int);
insert into PhysicalBSChain 
select 1,  1  ,'U1',  'JT_PACKAGE',  1,  2
union all select 2,  1  ,'U2',  'JT_PACKAGE',  2,  2
union all select 3,  2  ,'U3', 'JT_PACKAGE',  1,  2
union all select 4,  2  ,'U4',  'JT_PACKAGE',  2,  2

CREATE TABLE BSDL_DeviceNamePackageMatched(ID INT, [BSDL文件中器件名] VARCHAR(20), [网表中器件名] VARCHAR(20), [BS