以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]两表SELECT查询求助(4楼有新问题) (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=77270) |
-- 作者:huangfanzi -- 发布时间:2015/11/14 19:48:00 -- [求助]两表SELECT查询求助(4楼有新问题) 表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编辑过]
|
-- 作者:大红袍 -- 发布时间: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 -- 发布时间:2015/11/15 14:46:00 -- 谢谢了,第一个TOP后少打了个 1 ,其他同学参考时注意一下。 [此贴子已经被作者于2015/11/15 15:06:44编辑过]
|
-- 作者:huangfanzi -- 发布时间: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,这种情况应该如何解决,谢谢!
|
-- 作者:大红袍 -- 发布时间: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 |