以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  条件加载怎么设置?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=78847)

--  作者:文道古月
--  发布时间:2015/12/18 11:31:00
--  条件加载怎么设置?

老师好:

 

要完成如下要求,该怎么写代码?

 

加载当天日期,同一行中第一列的值和第二列的值相同的数据,条件是行号最大的那一行!

 

如图,1999年1月,产品=PD01,客户=CS03的有很多,如果只加载行号最大的(也就是最新的数据)那一行,该怎么设置加载筛选条件?

 

 

 


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

--  作者:大红袍
--  发布时间:2015/12/18 12:45:00
--  

比如

 

DataTables("订单").loadFilter = "[_Identify] In (Select max([_Identify]) f-------rom {订单} where 日期 >= #1999-01-01# and 日期 < #1999-02-01# group by 产品,客户)"
DataTables("订单").load


--  作者:文道古月
--  发布时间:2015/12/18 13:28:00
--  

"[_Identify] In (Select max([_Identify])

 

这句代码是什么意思呢?

 

 

group by 产品,客户

 

以产品和客户分组吗?,为什么可以这么用呢?

 


--  作者:大红袍
--  发布时间:2015/12/18 14:37:00
--  

_Identify 是主键。

 

这个是一个子查询,看看 http://www.foxtable.com/help/topics/0688.htm

 


--  作者:文道古月
--  发布时间:2015/12/18 14:40:00
--  

嗯,在看

老师,我把它放在了、BeforeLoadOuterTable事件,执行错误,该怎么改呢?

If e.DataTableName = "总库" Then
Dim rq As Date = Date.Today() \'条件1:获取今天的日期
e.SelectString = "[_Identify] In (Select max([_Identify]) fr   om {总库} where 输入日期 = #rq# group by 描述,主动单元)"
End If


--  作者:大红袍
--  发布时间:2015/12/18 14:51:00
--  

If e.DataTableName = "总库" Then
Dim rq As Date = Date.Today() \'条件1:获取今天的日期
    e.SelectString = "Select * f rom {总库} where [_Identify] In (Select max([_Identify]) fr om {总库} where 输入日期 = #" & rq & "# group by 描述,主动单元)"
End If