Foxtable(狐表)用户栏目专家坐堂 → [求助]查询表的条件


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

主题:[求助]查询表的条件

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


加好友 发短信
等级:幼狐 帖子:110 积分:818 威望:0 精华:0 注册:2012/5/24 14:18:00
[求助]查询表的条件  发帖心情 Post By:2012/6/11 10:35:00 [只看该作者]

情况如下:

表1

  序号   名称    编号    类别  
   1   鱼罐     001   罐头
   2   香肠    002   肉类
   3   娃哈哈    003   饮料 
   4   可乐     004   饮料

 

表2

 

  序号   编号    有效期  
   1    001    2011-12-12
   2    002    2012-04-07
   3    004    2011-09-09
   4    003    2012-03-03
   5    002    2013-04-07
   6    003    2012-12-12
   7    001    2012-12-12

 

 

以上两个表依据编号关联,如何用查询表使以上数据查询后结果为

 

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

 

就是当有两个有效期时只显示最晚的日期。而日期已经超了的不显示


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


加好友 发短信
等级:幼狐 帖子:110 积分:818 威望:0 精华:0 注册:2012/5/24 14:18:00
  发帖心情 Post By:2012/6/11 11:26:00 [只看该作者]

没有人知道如何操作吗?

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/6/11 13:07:00 [只看该作者]

这个挺复杂的,用sql语句的高手才行,帮你顶一下。

搞不定的话,也可以直接生成一个查询表,然后加一个标志列,用代码来筛选。


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


加好友 发短信
等级:幼狐 帖子:110 积分:818 威望:0 精华:0 注册:2012/5/24 14:18:00
  发帖心情 Post By:2012/6/11 14:17:00 [只看该作者]

谢谢你的提示。我试试

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


加好友 发短信
等级:童狐 帖子:272 积分:2324 威望:0 精华:0 注册:2011/7/14 16:23:00
  发帖心情 Post By:2012/6/11 14:22:00 [只看该作者]

用SQLJoinTableBuilder查询合并 表1和表2

然后分组统计MAX(日期)

这样可以吗??


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


加好友 发短信
等级:幼狐 帖子:110 积分:818 威望:0 精华:0 注册:2012/5/24 14:18:00
  发帖心情 Post By:2012/6/11 14:39:00 [只看该作者]

以下是引用zhangqinyun在2012-6-11 14:22:00的发言:

用SQLJoinTableBuilder查询合并 表1和表2

然后分组统计MAX(日期)

这样可以吗??

有代码可以发了看看吗?


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


加好友 发短信
等级:八尾狐 帖子:1812 积分:12999 威望:0 精华:14 注册:2008/10/11 18:07:00
  发帖心情 Post By:2012/6/11 14:55:00 [只看该作者]

试试:
Dim tb1 As Table = Tables("窗口1_Table1")
Dim d1 As Date = Date.Today
Dim sql As String
sql ="Select  a.*,b.有效期  From {表1} a  INNER JOIN (Select  编号,Max(iif(有效期 > #"
sql+=d1 & "#, 有效期, Null)) As 有效期  From {表2} Group By 编号) b on a.编号 = b.编号"
tb1.Fill(sql,"",True)

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


加好友 发短信
等级:狐神 帖子:6886 积分:43605 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2012/6/11 15:06:00 [只看该作者]

示例二

Dim jb As New SQLJoinTableBuilder("查询表1","订单")
jb
.ConnectionName = "Sale"
jb
.AddTable("订单","产品ID","产品","产品ID")
jb
.AddTable("订单", "客户ID","客户","客户ID")
jb.AddCols(
"产品名称","客户名称","日期", "数量","单价")
jb
.AddExp("金额","数量 * 单价")
jb
.Build()
MainTable = Tables(
"查询表1")

生成的查询表如下图,产品名称列来自于产品表,客户名称列来自客户表,日期、数量、单价和金额来自于订单表,其中金额列是通过数量和单价计算得出的:


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


加好友 发短信
等级:幼狐 帖子:110 积分:818 威望:0 精华:0 注册:2012/5/24 14:18:00
  发帖心情 Post By:2012/6/11 15:18:00 [只看该作者]

结果什么都没显示。。。。。不知道什么问题。没有提示语句错误

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


加好友 发短信
等级:八尾狐 帖子:1812 积分:12999 威望:0 精华:14 注册:2008/10/11 18:07:00
  发帖心情 Post By:2012/6/11 15:27:00 [只看该作者]


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

 回到顶部
总数 15 1 2 下一页