以文本方式查看主题
- 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
|