Foxtable(狐表)用户栏目专家坐堂 → [求助]两表SELECT查询求助(4楼有新问题)


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

主题:[求助]两表SELECT查询求助(4楼有新问题)

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


加好友 发短信
等级:五尾狐 帖子:1105 积分:8967 威望:0 精华:0 注册:2014/10/25 11:24:00
[求助]两表SELECT查询求助(4楼有新问题)  发帖心情 Post By:2015/11/14 19:48:00 [只看该作者]

表1为工序流程表:
工序  卷号
001  A1
001  A2
001  A3

表2为检测表:
卷号 检测次数 检测结果
A1       1         A1结果1
A1       2         A1结果2
A2       1         A2结果1

我现在用S elect做出的查询表结果如下:
工序  卷号  检测次数  检测结果
001  A1       1         A1结果1
001  A1       2         A1结果2
001  A2       1         A2结果1
001  A3
查询的数据是通过Tables("窗口1_Table1").Fill("S elect...代码生成一张表

而我想要的结果为:
工序  卷号  检测次数  检测结果
001  A1       2         A1结果2
001  A2       1         A2结果1
001  A3
即如果有多次检测,用最后一次的检测数据写入查询表,现在的结果会造成工序表流程增加了重复记录,这是错误的,请老师帮帮忙!
[此贴子已经被作者于2015/11/15 15:52:22编辑过]

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/15 10:55:00 [只看该作者]

select *, (select top max(检测次数) f rom {表2} b where a.卷号=b.卷号) as 检测次数, (select top 1 检测结果 f rom {表2} b where a.卷号=b.卷号 order by 检测次数 desc) as 检测结果 f rom {表1} as a

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


加好友 发短信
等级:五尾狐 帖子:1105 积分:8967 威望:0 精华:0 注册:2014/10/25 11:24:00
  发帖心情 Post By:2015/11/15 14:46:00 [只看该作者]

谢谢了,第一个TOP后少打了个 1 ,其他同学参考时注意一下。
[此贴子已经被作者于2015/11/15 15:06:44编辑过]

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


加好友 发短信
等级:五尾狐 帖子:1105 积分:8967 威望:0 精华:0 注册:2014/10/25 11:24:00
  发帖心情 Post By:2015/11/15 15:52:00 [只看该作者]

老师,又有一个新问题。
select *, (select top 1 max(检测次数) f rom {表2} b where a.卷号=b.卷号) as 检测次数, (select top 1 检测结果 f rom {表2} b where a.卷号=b.卷号 order by 检测次数 desc) as 检测结果 f rom {表1} as a Where 检测次数 > 0
代码是用在窗口中的,我会设置一些条件后合成查询语句,但是例子中加了条件后就不行了,可能是检测次数不属于表1,这种情况应该如何解决,谢谢!

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/15 15:58:00 [只看该作者]

Select *, (Select top 1 max(检测次数) f rom {表2} b where a.卷号=b.卷号 and 检测次数 > 0) As 检测次数, (Select top 1 检测结果 f rom {表2} b where a.卷号=b.卷号 and 检测次数 > 0 order by 检测次数 desc) As 检测结果 f rom {表1} As a

 回到顶部