以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  如何筛选出每个客户最后交费的一条记录  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=20924)

--  作者:sloyy
--  发布时间:2012/6/23 22:05:00
--  如何筛选出每个客户最后交费的一条记录


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

如图 应该筛选出红圈里的记录,SQL语句如何写?


 


--  作者:sunbrain
--  发布时间:2012/6/23 22:52:00
--  



Dim dr As DataRow
With DataTables("缴费单
")
    dr = .Find("用户名
 = \'张三\'","缴费日期 Desc") \'找出张三最后一次缴费的记录   
End With

[此贴子已经被作者于2012-6-23 22:53:56编辑过]

--  作者:sunbrain
--  发布时间:2012/6/23 23:02:00
--  
11

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


--  作者:y2287958
--  发布时间:2012/6/23 23:06:00
--  
"select * from {表A} where [_Identify] In (Select max([_Identify]) from {表A} group by 第一列)"

[此贴子已经被作者于2012-6-23 23:09:00编辑过]

--  作者:don
--  发布时间:2012/6/23 23:08:00
--  
Select  a.用户名,a.交费金额,a.交费年份, a.交费月份  From {表A} a INNER JOIN (Select  用户名 ,Max(交费年份 &  format(交费月份,\'00\'))  As 年月  From {表A} Group By  用户名) b on a.用户名 = b.用户名 And a.交费年份 &  format(a.交费月份,\'00\') = b.年月
--  作者:飞
--  发布时间:2012/6/23 23:10:00
--  

SELECT *

FROM {A}

WHERE [_Sortkey] IN

    (SELECT MAX([_Sortkey])

     FROM {A}

     WHERE 用户名 IS NOT NULL

     GROUP BY 用户名)


--  作者:sloyy
--  发布时间:2012/6/24 2:36:00
--  

4 5 6楼的兄弟,3种办法都是对的! 4楼5楼的办法我原来都用过,都得不到正确的数据,不知问题出在哪里;现在知道了图片点击可在新窗口打开查看

我的源程序原来用的是和5楼类似的代码,但是不知道如何处理年+月,结果遇到跨年的数据就出问题;

后来用的是和4楼类似的代码,但是忘了 " group by 第一列 ",所以 数据也有些不对;

看了3位的代码,深受启发,知道自己错在哪里了,非常感谢3位兄弟.


--  作者:jianjingmaoyi
--  发布时间:2012/6/24 12:58:00
--  
Select   TOP   1   *   From   表   Order   By   主鍵   Desc 
--  作者:jianjingmaoyi
--  发布时间:2012/6/24 12:59:00
--  
Select Top 1 * From {表名} Where 第五列 Is Not Null Order by [第五列] Desc