Foxtable(狐表)用户栏目专家坐堂 → [求助]请教下SQL只更新最早一条多列重复语句的方法,已解决


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

主题:[求助]请教下SQL只更新最早一条多列重复语句的方法,已解决

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


加好友 发短信
等级:一尾狐 帖子:466 积分:3382 威望:0 精华:0 注册:2016/12/21 22:58:00
[求助]请教下SQL只更新最早一条多列重复语句的方法,已解决  发帖心情 Post By:2023/4/20 17:43:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:snipaste_2023-04-20_17-20-32.jpg
图片点击可在新窗口打开查看


外部MDB数据库表A,时间列data, 整数列 标记,id,字符列name, 
希望将上述(不加载,希望后台执行,上述是示范)数据中,
将id=15,name=‘N1’,标记=1的所有重复数据中,最早的一行数据修改标记=2
希望达到


图片点击可在新窗口打开查看此主题相关图片如下:snipaste_2023-04-20_17-35-07.jpg
图片点击可在新窗口打开查看

使用以语句

Dim cmd As New_SQLCommand
cmd.Co__e = "DD"
Dim did As Integer = 15
Dim  dname String = "N1"

cmd._CommandText = "U_PDATE {表A} Set 标记 = 2 Where (id = (S_ELECT TOP 1 id FROM {表A} WHERE id = " & did & " AND 标记 = 1 AND dname = '" & dname & "' order by Data))"

cmd.ExecuteNonQuery()


说明:_为发贴需要,实际无_,_C发贴省略

(我是希望不用另外增加前台数据表,直接在后台实现) 
结果变成所有符合的数据都修改为标记=2了,


图片点击可在新窗口打开查看此主题相关图片如下:snipaste_2023-04-20_17-41-06.jpg
图片点击可在新窗口打开查看



我只是想修改最早的一条,不是所有符合的多条数据全部修改。百度,GPT都尝试过了,没找到方法,是不是不能实现?

能想到的另外方法,就是只能增加表,加载符合的数据,排序,再将ROW(0)修改。

-_-!!
cmd._CommandText = "U_PDATE {表A} Set 标记 = 2 Where (data = (S_ELECT TOP 1 data FROM {表A} WHERE id = " & did & " AND 标记 = 1 AND dname = '" & dname & "' order by Data))"
解决。

不知道data重复会不会有影响,保险一点用[_Identify]主键了。
cmd._CommandText = "U_PDATE {表A} Set 标记 = 2 Where ([_Identify]= (S_ELECT TOP 1 [_Identify] FROM {表A} WHERE id = " & did & " AND 标记 = 1 AND dname = '" & dname & "' order by Data))" 
[此贴子已经被作者于2023/4/20 18:12:09编辑过]

 回到顶部