以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 如何加载每个客户的最新一条订单? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=53074) |
-- 作者:ehomecd -- 发布时间:2014/6/28 23:05:00 -- 如何加载每个客户的最新一条订单? 请教一个问题:订单表里,有n个客户,每个客户有n条记录,我如何加载每个客户的最新一条记录,代码应该如何写? 也就是说每个客户只筛选一条最新添加的记录,订单表有“客户姓名”和“订单日期”字段。
|
-- 作者:pyh6918 -- 发布时间:2014/6/29 0:17:00 -- 增加一列【标志列】,字符型
Dim mns As List(Of String) = DataTables("订单").GetUniqueValues("", "客户姓名") |
-- 作者:有点甜 -- 发布时间:2014/6/29 9:09:00 -- Dim mns As List(Of String) = DataTables("订单").SQLGetValues("", "客户姓名") Dim idxs As String = "" DataTables("订单").LoadFilter="[_Identify] in (" & idxs.TrimEnd(",") & ")" |
-- 作者:2 -- 发布时间:2014/6/29 9:27:00 -- dim sql as string sql="SELECT E.客户ID,O.订单ID FROM 客户表 AS E CROSS APPLY (SELECT TOP(1)* FROM 订单表 AS O1 WHERE E.客户ID = O1.客户ID ORDER BY O1.订单日期 DESC,O1.订单ID DESC ) AS O" DataTables("订单表").SQLLoad(sql)
[此贴子已经被作者于2014-6-29 10:23:33编辑过]
|
-- 作者:2 -- 发布时间:2014/6/29 9:52:00 -- WITH 订单 AS ( SELECT n=ROW_NUMBER() OVER(partition BY 客户姓名 ORDER BY 订单日期 desc,订单ID desc),* FROM 订单表 ) SELECT * FROM 订单 WHERE n=1; [此贴子已经被作者于2014-6-29 9:59:18编辑过]
|