-----|---------------------------------- |
id | t_id_1 | b_id_1 | tons_1|weight_1 |
1 | 2201 2202 312 985 |
2 | 2208 2209 416 5645 |
3 | 3106 3107 626 145 |
4 | 2201 2202 658 45687 |
5 | 3106 2209 785 4875 |
_____|___________________________________|
w_all表结构如下:
-----|------------------------------- |
id | w_id | tons_all|weight_all |
1 | 2201 A B |
2 | 2202 |
3 | 2208 |
4 | 2209 C D |
5 | 3106 |
6 | 3107 |
7 | 6881 |
8 | 6882 |
9 | 7308 |
10 | 7309 |
11 | 9236 |
12 | 9237 |
_ ___|________________________________|
conn.BeginTrans
Do While Not rst.EOF
If rst.Fields("wr_tons_1") = 0 Then
strid = rst.Fields("id")
Sql = "insert into w_1 SELECT t_id_1,b_id_1,weight_1,tons_1 FROM roll where id= " & strid - 1
conn.Execute Sql
sql1 = "select t_id_1,b_id_1,weight_1,tons_1 from wr_1 where ID=(select max(ID) from w_1)"
Rst1.Open sql1, conn, 3, 3
str_tons = Rst1.Fields("tons_1")
str_wear = Rst1.Fields("wear_1")
str_top = Rst1.Fields("t_id_1")
str_bot = Rst1.Fields("b_id_1")
strsql = "update w_all Set tons_all=tons_all +" & str_tons & ",wear_all=wr_wear_all +" & str_wear & " where wr_id=" & str_top
conn.Execute strsql
strsql2 = "update w_all Set tons_all=tons_all +" & str_tons & ",wear_all=wr_wear_all +" & str_wear & " where wr_id=" & str_bot
conn.Execute strsql2
End If
Set Rst1 = Nothing
rst.MoveNext
Loop
conn.CommitTrans
功能一:(已实现)
上面代码实现的功能是:当表w_1有新的记录时,按照表w_1的t_id_1,b_id_1号,如果能在表wr_all的wr_id号中找到相同号码的话,就按对应的号码把weight_all,tons_all累加求和
想要的功能:
当表w_1有新的记录时,但表w_1的t_id_1,b_id_1号不能在表wr_all的wr_id号中找到相同号码的话,就把w_1的记录插入到表wr_all中,做为新的记录.
把w_1中,t_id_1,b_id_1号分别插入到表wr_all的wr_id字段内.把tons_1,weight_1,分别插入到表wr_all的weight_all,tons_all中.
如此循环下去.
大家一定要帮帮!!我好吗?谢谢大家了.
7 个解决方案
#1
可以考虑左右关联。
#2
你在上面插入w_1表的新记录的同时,判断是否在wr_all里面是否有记录,如是,则执行你上面的程序;如否,则在wr_all表里插入.
#3
cngxylyh(olo):
你好,我知道在wr_all里判断有没有相同的wr_id,但怎样判断呢,每循环一次对于表w_1来说只有一条记录,但就是只有一条记录要跟表wr_all里的全部记录对比一下.看看是否为相同.
我不知要怎样写代码大家能否给个例子,谢谢
你好,我知道在wr_all里判断有没有相同的wr_id,但怎样判断呢,每循环一次对于表w_1来说只有一条记录,但就是只有一条记录要跟表wr_all里的全部记录对比一下.看看是否为相同.
我不知要怎样写代码大家能否给个例子,谢谢
#4
给个思路:
if not exists(select * from w_all where w_id ='abc')
begin
insert into w_1 //省略
insert into w_all (feildnamelist)values(valuelist)
insert into w_all (w_id)values(b_id_1)
end if
else
begin
insert into w_1 //省略
update w_all set tons_all='fff',weight_all='sdf' where w_id ='abc'
end
if not exists(select * from w_all where w_id ='abc')
begin
insert into w_1 //省略
insert into w_all (feildnamelist)values(valuelist)
insert into w_all (w_id)values(b_id_1)
end if
else
begin
insert into w_1 //省略
update w_all set tons_all='fff',weight_all='sdf' where w_id ='abc'
end
#5
我知道什么思想:可是
我知道在wr_all里判断有没有相同的wr_id,但怎样判断,每循环一次对于表w_1来说只有一条记录,但就是只有一条记录要跟表wr_all里的全部记录对比一下.看看是否为相同.
我不知要怎样写代码大家能否给个例子
我知道在wr_all里判断有没有相同的wr_id,但怎样判断,每循环一次对于表w_1来说只有一条记录,但就是只有一条记录要跟表wr_all里的全部记录对比一下.看看是否为相同.
我不知要怎样写代码大家能否给个例子
#6
大家能否给个例子,谢谢
#7
问题已解决
#1
可以考虑左右关联。
#2
你在上面插入w_1表的新记录的同时,判断是否在wr_all里面是否有记录,如是,则执行你上面的程序;如否,则在wr_all表里插入.
#3
cngxylyh(olo):
你好,我知道在wr_all里判断有没有相同的wr_id,但怎样判断呢,每循环一次对于表w_1来说只有一条记录,但就是只有一条记录要跟表wr_all里的全部记录对比一下.看看是否为相同.
我不知要怎样写代码大家能否给个例子,谢谢
你好,我知道在wr_all里判断有没有相同的wr_id,但怎样判断呢,每循环一次对于表w_1来说只有一条记录,但就是只有一条记录要跟表wr_all里的全部记录对比一下.看看是否为相同.
我不知要怎样写代码大家能否给个例子,谢谢
#4
给个思路:
if not exists(select * from w_all where w_id ='abc')
begin
insert into w_1 //省略
insert into w_all (feildnamelist)values(valuelist)
insert into w_all (w_id)values(b_id_1)
end if
else
begin
insert into w_1 //省略
update w_all set tons_all='fff',weight_all='sdf' where w_id ='abc'
end
if not exists(select * from w_all where w_id ='abc')
begin
insert into w_1 //省略
insert into w_all (feildnamelist)values(valuelist)
insert into w_all (w_id)values(b_id_1)
end if
else
begin
insert into w_1 //省略
update w_all set tons_all='fff',weight_all='sdf' where w_id ='abc'
end
#5
我知道什么思想:可是
我知道在wr_all里判断有没有相同的wr_id,但怎样判断,每循环一次对于表w_1来说只有一条记录,但就是只有一条记录要跟表wr_all里的全部记录对比一下.看看是否为相同.
我不知要怎样写代码大家能否给个例子
我知道在wr_all里判断有没有相同的wr_id,但怎样判断,每循环一次对于表w_1来说只有一条记录,但就是只有一条记录要跟表wr_all里的全部记录对比一下.看看是否为相同.
我不知要怎样写代码大家能否给个例子
#6
大家能否给个例子,谢谢
#7
问题已解决