我用DELPHI6.0和sqlserver2000数据库,高分求一问题!!急!!

tobyteng 2004-05-06 11:03:44
我现有两张表
表一:
应收表
客户ID 收款月份(int) 应收金额
101 3 5000
120 4 2000
101 4 12000
表二:
已收表
客户ID 收款月份(int) 已收金额
101 5 3000
120 5 1000
现在我要求得一张月节表 :(能知道这个客户在几月份回款额,以及冲抵时用几月份已收款去冲几月份的应收款 , 并且它们相差几个月的时间)
表三的头结构
月节表:
客户ID 月节时间(已收表月份-冲抵时应收款表的月份) 冲抵余额

以下是我根据上面写的一个SQL 语句请各位高手多多指教啊
select r.客户ID,r.已收金额-k.应收金额,r.收款月份-k.收款月份
from 已收表 as r ,
应收表 as k
where r.客户ID=k.客户ID
go
得到的结果是:
月节表:
客户ID 月节时间(已收表月份-冲抵时应收款表的月份) 冲抵余额
101 2 -2000
120 1 -1000
101 1 -9000
现在是客户ID为 101 这个客户应收款3000 冲了两次啊
高手帮帮忙啊尽量写详细一点啊
急啊请多关照啊 !!!!!!!!!!!

...全文
13 9 点赞 打赏 收藏 举报
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
Kaykay 2004-05-06
恕我不写代码,思路是:
你用一个table1从表一里查数据,用另一个table2从表二里数据,然后在遍历table2的循环里对table1进行遍历,根据两个table的关系计算数据放到临时表中去。
  • 打赏
  • 举报
回复
tobyteng 2004-05-06
KAYKAY 兄弟
能不能给一点提示啊,
要不然详细一点好吗?
各位兄弟, 帮帮忙啊
  • 打赏
  • 举报
回复
Kaykay 2004-05-06
只用SQL语句可能不行,编程吧,解决起来新简单。
  • 打赏
  • 举报
回复
tobyteng 2004-05-06
我是拿已收表的金额去冲应收表的金额
是啊你说的对啊,
我刚才急了打错了啊,
不好意思啊
  • 打赏
  • 举报
回复
Kaykay 2004-05-06
我感觉好像不对吧,是不应为:

客户ID 月节时间(已收表月份-冲抵时应收款表的月份) 冲抵余额
101 2 2000
120 1 -1000
101 1 -10000 //此处是不是应为负???
  • 打赏
  • 举报
回复
tobyteng 2004-05-06
感谢多位大侠:
我现在回答一下kaykay
得到的结果是:
月节表:
客户ID 月节时间(已收表月份-冲抵时应收款表的月份) 冲抵余额
101 2 2000
120 1 -1000
101 1 10000
也就是只要没有为负就可以冲下一个月的啊,
我现在就是不能判断当冲减到第一个为负的时候怎么样停止冲减啊
还请各位大侠帮忙啊
我一直在线等待啊
急急!!!!!!!!!!!!!!!
  • 打赏
  • 举报
回复
Kaykay 2004-05-06
假如你的表为:
表一:
应收表
客户ID 收款月份(int) 应收金额
101 3 1000 //注意,此处区别于你原来表的数据
120 4 2000
101 4 12000
表二:
已收表
客户ID 收款月份(int) 已收金额
101 5 3000
120 5 1000

你又想结果如何?
3000是不是应分两次冲抵???
  • 打赏
  • 举报
回复
hewei2003 2004-05-06
那么你想客户ID为101这个客户计算出结果后应该显示出什么样的结果呢?(也就是101客户的月节时间应该显示为多少呢?)
  • 打赏
  • 举报
回复
lincs3000 2004-05-06
Up
  • 打赏
  • 举报
回复
相关推荐
发帖
数据库相关
加入

2462

社区成员

Delphi 数据库相关
申请成为版主
帖子事件
创建了帖子
2004-05-06 11:03
社区公告
暂无公告