Foxtable(狐表)用户栏目专家坐堂 → 两表更新目标表没有记录


  共有1812人关注过本帖树形打印复制链接

主题:两表更新目标表没有记录

帅哥哟,离线,有人找我吗?
fubblyc
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2355 积分:16181 威望:0 精华:0 注册:2013/9/1 8:09:00
两表更新目标表没有记录  发帖心情 Post By:2019/10/12 9:52:00 [只看该作者]

老师,

有2个表,库存明细表和盘点明细表
通过以下代码,将盘点明细表的数量更新到库存明细表里

cmd.CommandText = " updat e 库存明细 set 实盘数量 = a.实盘数量   from 盘点明细表 As a where a.货号 = 库存明细.货号  And  a.库存地点 = 库存明细.库存地点  And  a.日期 = 库存明细.日期 "
cmd.ExecuteNonQuery()

有种情况,库存明细表没有记录,而盘点明细表却有
因为是只更新 实盘数量 到库存明细表,没有新增,就会导致漏掉。

我采用以下方法也可以实现,
但感觉好像慢了点,老师,有没有更高效的办法:

Dim dt1 As DataTable
Dim dt2 As DataTable
Dim dr1 As DataRow
cmd.CommandText = "selec t * from 盘点明细汇总表 where " & filter
dt1  = cmd.ExecuteReader()

cmd.CommandText = "selec t * from 库存明细 where " & filter
dt2  = cmd.ExecuteReader()
Dim hhs As List(Of String) = dt2.GetValues("货号")
For Each dr1  In dt1.DataRows
    If hhs.Contains(dr1("货号")) = False Then
        cmd.CommandText = " inser t into 库存明细 (库存地点,日期,货号,实盘数量) values ( '" & dr1("库存地点") & "','" & dr1("日期") & "','" & dr1("货号") & "', '" & dr1("实盘数量") & "' ) "
        cmd.ExecuteNonQuery
    End If    
Next

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105965 积分:538900 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/10/12 10:23:00 [只看该作者]

试试

cmd.CommandText = " update 库存明细 set 实盘数量 = a.实盘数量   from 盘点明细表 As a where a.货号 = 库存明细.货号  And  a.库存地点 = 库存明细.库存地点  And  a.日期 = 库存明细.日期 ; insert into 
库存明细 (库存地点,日期,货号,实盘数量) selec库存地点,日期,货号,实盘数量 from 盘点明细汇总表 where " & filter & " and 货号 not in (select 货号 from 库存明细 where " & filter & ")"

 回到顶部
帅哥哟,离线,有人找我吗?
fubblyc
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2355 积分:16181 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2019/10/12 14:57:00 [只看该作者]

谢谢蓝老师

 回到顶部
帅哥哟,离线,有人找我吗?
fubblyc
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2355 积分:16181 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2019/10/16 15:47:00 [只看该作者]

insert into 库存明细 (库存地点,日期,货号,实盘数量,商品描述) selec库存地点,日期,货号,实盘数量 from 盘点明细汇总表 where " & filter & " and 货号 not in (select 货号 from 库存明细 where " & filter & ")"

蓝老师,可行可行。

然后我是要再加更新一个字段,这些增加的行 商品描述 字段 更新为 “新增记录” 这四个字
要怎么写在呢?因为现在是直接取另一个表的值。
[此贴子已经被作者于2019/10/16 15:47:06编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105965 积分:538900 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/10/16 15:53:00 [只看该作者]

insert into 库存明细 (库存地点,日期,货号,实盘数量,商品描述) selec库存地点,日期,货号,实盘数量,'新增记录' from 盘点明细汇总表 where " & filter & " and 货号 not in (select 货号 from 库存明细 where " & filter & ")"

 回到顶部
帅哥哟,离线,有人找我吗?
fubblyc
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2355 积分:16181 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2019/10/16 17:30:00 [只看该作者]

谢谢蓝老师!!!

 回到顶部