我现有两张表
表一:
应收表
客户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 冲了两次啊
高手帮帮忙啊尽量写详细一点啊
急啊请多关照啊 !!!!!!!!!!!       

解决方案 »

  1.   

    假如你的表为:
    表一:
    应收表
    客户ID   收款月份(int) 应收金额
    101         3            1000  //注意,此处区别于你原来表的数据 
    120         4             2000
    101         4            12000
    表二:
    已收表
    客户ID  收款月份(int) 已收金额
    101         5            3000
    120         5            1000你又想结果如何?
    3000是不是应分两次冲抵???
      

  2.   

    感谢多位大侠:
    我现在回答一下kaykay
    得到的结果是:
    月节表:
    客户ID 月节时间(已收表月份-冲抵时应收款表的月份) 冲抵余额
     101             2                               2000
     120             1                               -1000
     101             1                               10000
    也就是只要没有为负就可以冲下一个月的啊,
    我现在就是不能判断当冲减到第一个为负的时候怎么样停止冲减啊
    还请各位大侠帮忙啊
    我一直在线等待啊
    急急!!!!!!!!!!!!!!!
      

  3.   

    只用SQL语句可能不行,编程吧,解决起来新简单。
      

  4.   

    KAYKAY 兄弟
    能不能给一点提示啊,
    要不然详细一点好吗?
    各位兄弟, 帮帮忙啊
      

  5.   

    恕我不写代码,思路是:
    你用一个table1从表一里查数据,用另一个table2从表二里数据,然后在遍历table2的循环里对table1进行遍历,根据两个table的关系计算数据放到临时表中去。