以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]有关INNER JION问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=20565)

--  作者:ttzb2000
--  发布时间:2012/6/12 15:47:00
--  [求助]有关INNER JION问题

如果只是将表2的有效期合并到表1中去,按照帮助里的方法可行的。如果我在表2中增加一列为有效编号,这样的话怎么才能合并到一起去?

 

请看附件,帮忙一下,如何改好?


 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:查询.table

合并后显示如下:

 

 

 序号    名称    编号    类别    有效编号    有效期  
   1   鱼罐    001   罐头          
   2   香肠   002  肉类      20120103   2012-12-12 
   3  娃哈哈     003    饮料      20130101   2013-04-07
   4   可乐    004   饮料      20120104   2012-12-12 

--  作者:sloyy
--  发布时间:2012/6/12 17:03:00
--  
问题不是很明确,是想把新的有效期覆盖旧的有效期吗?
--  作者:don
--  发布时间:2012/6/13 7:42:00
--  
要学会变通,给你方法可以,但不会一包到底!
另:1.[有效期]应为日期时间型;
    2.Fox是数据库,库中不应随便增加空行!
  
Dim tb1 As Table = Tables("窗口1_Table1")
Dim sql As String
sql ="Select a.序号,a.名称,a.编号,a.类别,b.有效编号,b.有效期 From {表1} a INNER JOIN (Select  编号,"
sql+ ="Max(iif(有效期 > date() , 有效编号, Null)) As 有效编号,Max(iif(有效期 > date() , 有效期, Null)) "
sql+=" As 有效期 From {表2} where 编号 is not null Group By 编号) b on a.编号 = b.编号"
tb1.Fill(sql,"",True)

--  作者:ttzb2000
--  发布时间:2012/6/13 8:19:00
--  
谢谢don,我原先有效编号就直接引用,没有用IIF来筛选,结果运行时老出错。