以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]SQL语句  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=48422)

--  作者:aaticor
--  发布时间:2014/3/28 15:21:00
--  [求助]SQL语句

表A的列名:计划编码、公司编码、计划起始日期、计划结束日期、申请资金、是否上报、是否归档等。

现想筛选出每个公司最新的计划记录,即每个公司只有一条记录,这条记录是该公司最后上报的计划,可以从起始结束日期判断,但是特殊情况,如某公司某次没报计划,另一情况是每家公司每次计划的日期范围都可以不同(如:A公司本次计划从本月4号至本月11号,但下次不一定只有7天,下次可能是12号至23号不等;B公司的计划,更会参差不齐了,不过一般都是正常情况,每周报一次计划)。

请问,如何用SQL语句进行筛选?

或者,如何用FOXtable实现以上功能。我是希望在窗口打开后就能在表控件中看到结果。

初学者,见笑了,请各位大侠不惜指教!


--  作者:狐狸爸爸
--  发布时间:2014/3/28 15:26:00
--  

用Select语句找出最后上报的,可以看看:

http://www.foxtable.com/help/topics/2473.htm

 

 

在窗口看到结果的话:

http://www.foxtable.com/help/topics/2912.htm

 

[此贴子已经被作者于2014-3-28 15:27:39编辑过]

--  作者:aaticor
--  发布时间:2014/3/28 17:33:00
--  

嗯,原来在这里。感谢狐爸。。顺问一句,你是狐表之父?


--  作者:aaticor
--  发布时间:2014/3/30 11:32:00
--  

感谢狐爸的指导,最后我在窗口的afterload事件中搞定,就两行代码。

Dim csql As String ="Select a.公司编码,c.公司名称,a.计划编码,a.编号,a.计划起始日期,a.计划结束日期,a.已上报,a.已归档,a.期初可用资金,a.编制日期,a.最后修改日期 FROM {周资金计划主表} a inner join ((Select 公司编码,max(计划起始日期) As 计划起始日期,max(计划结束日期) As 计划结束日期 from {周资金计划主表} group by 公司编码) b inner join {下属公司} c on  b.公司编码=c.公司编码) on a.公司编码=b.公司编码 And a.计划起始日期=b.计划起始日期 And a.计划结束日期=b.计划结束日期"
Tables("周计划上报状况查询_计划主表").Fill(csql,True)