Foxtable(狐表)用户栏目专家坐堂 → [求助] SQL加载有重复数量


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

主题:[求助] SQL加载有重复数量

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


加好友 发短信
等级:六尾狐 帖子:1347 积分:9817 威望:0 精华:0 注册:2015/6/30 8:46:00
[求助] SQL加载有重复数量  发帖心情 Post By:2019/4/27 15:26:00 [只看该作者]

Dim cmd As New SQLCommand
cmd.C

cmd.CommandText = "Sel ect v.* "
cmd.CommandText &= ", a.ID as 任务ID,a.车间 as 车间,a.组别 as 组别,a.单据类型 As 单据类型,a.制单 as 制单,a.审核 as 审核"
cmd.CommandText &= " fro m [" & Vars("mes") & "].dbo.生产发料单 as v "
cmd.CommandText &= " left join  [" & Vars("mes") & "].dbo.生产任务单 As a on a.任务单号 = v.任务单号 and a.子阶ID = v.物料ID and v.车间 = a.车间 and v.组别 = a.组别 "
cmd.CommandText &= " where v.批次号 = " & e.Form.Controls("Text批次号").text

Dim tb As Table = Tables(e.Form.Name & "_Table1")
tb.DataSource = cmd.ExecuteReader

 


图片点击可在新窗口打开查看此主题相关图片如下:无标题.png
图片点击可在新窗口打开查看

 

代码如红色字体所示,这样加载进来会有重复的数据,因为生产任务单会有同样的数据多条,
以下代码出现错误!

Dim cmd As New SQLCommand
cmd.C

cmd.CommandText = "Sel ect v.* "

cmd.CommandText &= “ (sele ct a.ID as 任务ID,a.车间 as 车间,a.组别 as 组别,a.单据类型 As 单据类型,a.制单 as 制单,a.审核 as 审核 from [" & Vars("mes") & "].dbo.生产任务单 As a on a.任务单号 = v.任务单号 and a.子阶ID = v.物料ID and v.车间 = a.车间 and v.组别 = a.组别) "
cmd.CommandText &= " fr om [" & Vars("mes") & "].dbo.生产发料单 as v "
cmd.CommandText &= " where v.批次号 = " & e.Form.Controls("Text批次号").text

Dim tb As Table = Tables(e.Form.Name & "_Table1")
tb.DataSource = cmd.ExecuteReader


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


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

cmd.CommandText = "Sel ect distinct v.* "

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


加好友 发短信
等级:六尾狐 帖子:1347 积分:9817 威望:0 精华:0 注册:2015/6/30 8:46:00
  发帖心情 Post By:2019/4/29 14:48:00 [只看该作者]

老师,我想你理解错了,生产发料单中是没有重复的,但生产任务单因为  a.任务单号 = v.任务单号 and a.子阶ID = v.物料ID and v.车间 = a.车间 and v.组别 = a.组别

符合这个条件的有很多条,按以下代码加载进来就会重复了。

 

Dim cmd As New SQLCommand
cmd.C

cmd.CommandText = "Sel ect v.* "
cmd.CommandText &= ", a.ID as 任务ID,a.车间 as 车间,a.组别 as 组别,a.单据类型 As 单据类型,a.制单 as 制单,a.审核 as 审核"
cmd.CommandText &= " fro m [" & Vars("mes") & "].dbo.生产发料单 as v "
cmd.CommandText &= " left join  [" & Vars("mes") & "].dbo.生产任务单 As a on a.任务单号 = v.任务单号 and a.子阶ID = v.物料ID and v.车间 = a.车间 and v.组别 = a.组别 "
cmd.CommandText &= " where v.批次号 = " & e.Form.Controls("Text批次号").text

Dim tb As Table = Tables(e.Form.Name & "_Table1")
tb.DataSource = cmd.ExecuteReader


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/4/29 15:27:00 [只看该作者]

如果是所有列的值都重复,那就加入关键字 distinct 即可去除重复。

 

如果只是部分重复,本来的数据就是需要重复的,因为你 生产任务单 的数据就是重复的。


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


加好友 发短信
等级:六尾狐 帖子:1347 积分:9817 威望:0 精华:0 注册:2015/6/30 8:46:00
  发帖心情 Post By:2019/4/29 17:32:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:无标题.png
图片点击可在新窗口打开查看

 

老师,数据如上,发料单有一行,我想从任务单中读取a.ID as 任务ID,a.车间 as 车间,a.组别 as 组别,a.单据类型 As 单据类型,a.制单 as 制单,a.审核 as 审核

 

代码应该怎么修改。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/4/29 18:07:00 [只看该作者]

不理解你的意思,请做一个实例发上来测试

 回到顶部