这能用一句SQL实现吗????帮帮我~~

playcat 2003-11-18 11:32:13
我现在一张表里有这样的数据:
dATE W_Amount M_Remain
2003-09 0 0
2003-10 1 2
2003-11 4 5
2003-12 5 8
2004-01 8 22
我需要求每一条记录与上一条记录的差作为一条记录;就是这样我先取得这样得数据:
dATE W_Amount M_Remain
2003-10 1 2
2003-11 3 3
2003-12 1 3
2004-01 3 14
各位高手,我能实现吗?


...全文
31 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
wel_qll 2003-11-21
  • 打赏
  • 举报
回复
怎么不可以?我这里都实验过了
luzufu 2003-11-20
  • 打赏
  • 举报
回复
可以实现的,编程序实现,很简单的,只要将原来的记录取出来,按照条件从记录集的第二条开始,相对应的相减,,前提是按照date排序!
apple_001 2003-11-20
  • 打赏
  • 举报
回复
为什么一定要在一个表里呢,如果换成两个表,什么问题都解决了。
wel_qll 2003-11-18
  • 打赏
  • 举报
回复
当然,在此基础上可以不用加字段也可以,但是得保证有个字段是排序的比如DATE ,原理是使用TOP 1语法。
自己琢磨吧,不明白再问

给分吧?
wel_qll 2003-11-18
  • 打赏
  • 举报
回复
这样可以吧。先给记录排序加个字段,不能间断
dATE W_Amount M_Remain OrderField
2003-09 0 0 1
2003-10 1 2 2
2003-11 4 5 3
2003-12 5 8 4
2004-01 8 22 5
其中OrderField(1、2、3、4、5不能间断)
select dATE,
W_Amount=(select a.W_Amount-b.W_Amount from tbl b where b.OrderField=a.OrderField-1 ),
M_Remain=(select a.M_Remain-c.M_Remain from tbl c where c.OrderField=a.OrderField-1 )
from tbl a where a. OrderField >1

mmcgzs 2003-11-18
  • 打赏
  • 举报
回复
好象不可以
playcat 2003-11-18
  • 打赏
  • 举报
回复
但是都不可用啊,根本什么都查询不出来的~
mousered0 2003-11-18
  • 打赏
  • 举报
回复
同上
Lucky527 2003-11-18
  • 打赏
  • 举报
回复
能实现

7,771

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧