以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  如何加载最后10个单号的数据,每个单号有多条记录?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=107211)

--  作者:lyx4040
--  发布时间:2017/9/23 15:03:00
--  如何加载最后10个单号的数据,每个单号有多条记录?
 每个 [订单号] 可能有多行,怎么加载同一客户的最后10个订单号的数据?

--  作者:有点蓝
--  发布时间:2017/9/23 15:19:00
--  
如果想一次性的加载所有客户的最后10个订单号,需要使用sql获取,如:

https://zhidao.baidu.com/question/490164390.html

http://bbs.csdn.net/topics/390374976




--  作者:lyx4040
--  发布时间:2017/9/23 15:45:00
--  
 只需要加载一个指定客户的最后10个订单号的数据
--  作者:有点蓝
--  发布时间:2017/9/23 15:48:00
--  
那就简单多了

With DataTables("订单")
    .LoadFilter = "客户=\'CS01\'"
    .LoadOrder = "日期 desc"
    .LoadTop = 10
    .load
End With

--  作者:lyx4040
--  发布时间:2017/9/23 15:59:00
--  
一个订单号有多行,你这样只是加载了最后10行,我要的是加载最后10个订单号的所有行

--  作者:有点蓝
--  发布时间:2017/9/23 16:09:00
--  
加载2次

With DataTables("订单")
    .StopRedraw
    .LoadFilter = "客户=\'CS01\'"
    .LoadOrder = "日期 desc"
    .LoadTop = 10
    .load
    
    .LoadFilter = "订单号 In (" & .GetComboListString("订单号").replace("|","\',\'") & ")"
    .LoadTop = ""
    .load
    .ResumeRedraw
End With

使用sql效率高一点

Select * from 订单 where 订单号 In (Select Top 10 订单号 from 订单 where "客户=\'CS01\' order by 日期 desc)

--  作者:lyx4040
--  发布时间:2017/9/23 16:24:00
--  
理解错我的意思了,要加载最近的10个订单号的所有数据,要加载进10个订单号;你这样是从最后10行中,找到不同的订单号,再把那些订单号的数据加载进来。

--  作者:有点蓝
--  发布时间:2017/9/23 16:29:00
--  
排序改为订单号


Select * from 订单 where 订单号 In (Select Top 10 distinct 订单号 from 订单 where "客户=\'CS01\' order by 订单号 desc)