• 全部
  • VBS
  • .NET技术
  • VBA
  • VB网络编程
  • VB多媒体
  • VB数据库
  • VB控件
  • VB COM/DCOM
  • VB基础类
  • VB API
  • 问答

我要再问! 100分,在线等

blue_apple 2005-03-15 09:42:00
有表T
月份    编号   欠费  总金额
200411   001    2.3   200
200412   001    2.8   210
200501   001    3.0   220
200411   002    0    100
200412   002    0    310
200501   002    4.0   260
200411   003    0    200
200412   003    2.8   500
200501   003    2.0   300

我想找出连续欠费两个月或两个月以上的记录,记录取最后一个月的
即想得到下面的记录
月份  编号   欠费  总金额
200501   001    3.0   220
200501   003    2.0   300
...全文
89 点赞 收藏 9
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
blue_apple 2005-04-23
但速度慢了
回复
Night_Elf 2005-03-15
hamadou(闵峰) 好强!
回复
hamadou 2005-03-15
这里假设对应的字段分别是:月份mon(int) ,编号:id(char),欠费:qm(money),总金额:sum(money)

select b.id,max(b.mon)as mon from t as a,t as b
where a.id=b.id and (b.mon-a.mon=1 or b.mon-a.mon=89) and a.qm<>0 and b.qm<>0
group by b.id

说明:使用如上的语句可以得到:

月份  编号  
200501 001   
200501 003  
  
但是,我要说的是,欠费和总金额由于不在分组条件里,也不可能使用聚合函数来求什么,所以通过语句不好得到,你可以把这个结果放入临时表里,然后通过对应的关系从t表里取得相应的欠费和总金额,然后更新到临时表里去。那么临时表就是你最终的结果!
回复
心情解码 2005-03-15
:)





--
回复
liuzxit 2005-03-15
try...

select t2.m,t2.编号,T.欠费,T.总金额 from T,(select max(月份) m,编号,count(*) c from T group by 编号) t2 where T.月份 = t2.m and T.编号=t2.编号 and t2.c > 1
回复
liulxmooo 2005-03-15
up
回复
jialiang 2005-03-15
1.取出记录到dataset,Where 欠费>0 sort by 编号,月份
2.程序遍例判断哪个编号有连续两个月的前费记录,同时取出最后一个月的前费记录即可
回复
blue_apple 2005-03-15
这看也只能这样了
回复
haoco 2005-03-15
up
回复
发帖
VB
创建于2007-09-28

1.6w+

社区成员

VB技术相关讨论,主要为经典vb,即VB6.0
申请成为版主
帖子事件
创建了帖子
2005-03-15 09:42
社区公告
暂无公告