SQL高手请进!!!由于上一次发问,描述不清楚,重新发帖,管理同志可以删了上一个帖子 20thinclient]

发布时间:2016-12-8 16:02:17 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"SQL高手请进!!!由于上一次发问,描述不清楚,重新发帖,管理同志可以删了上一个帖子 20thinclient]",主要涉及到SQL高手请进!!!由于上一次发问,描述不清楚,重新发帖,管理同志可以删了上一个帖子 20thinclient]方面的内容,对于SQL高手请进!!!由于上一次发问,描述不清楚,重新发帖,管理同志可以删了上一个帖子 20thinclient]感兴趣的同学可以参考一下。

求SQL语句,由“下量表”、“实收表”和“还款总表”求出“还款表”   注:这是自来水收费的一段功能,在许多QQ群问过,没有得到解答   下量表   bh xlrq         xlje   1 2008-1-1 4   1 2008-2-1 3   1 2008-3-1 4   1 2008-4-1 6   实收表   bh skrq         ssje   1 2008-1-2 2   1 2008-2-2 3   1 2008-2-3 3   1 2008-2-4 6   还款总表   bh xlrq    skrq       hkje   1 2008-1-1   2008-1-2   2   1 2008-1-1   2008-2-2   2   1 2008-2-1   2008-2-2   1   1 2008-2-1   2008-2-3   2   还款表   bh xlrq     skrq hkje   1 2008-3-1    2008-2-3 1   1 2008-3-1    2008-2-4 3   1 2008-4-1    2008-2-4 3   得出“还款表”的目的是插入到“还款总表”,不要直接生成新的“还款总表”,那样将来会有问题  对“还款表”的解释:  第一行hkje是1,是因为在“实收表”中可以看出2008-2-3这天“实收金额ssje”是3元钱,这3元中有2元还给了xlrq为2008-2-1这天的下量,所以还剩1元,等还2008-3-1的时候,只够还1元了;  第二行hkje是3,是因为2008-2-4这天收了6元,超出了hkje的3元,只用3元就可以了,剩下的3元以后再用。  第三行是3,是因为2008-4-1下量了6,但是如上行所述,只剩下了3元,也就只能还3元。

吃饭去。回来帮你看看。

对不起没说清楚,重新整理问题如下: 求SQL语句,由“下量表”、“实收表”和“还款总表”求出“还款表”  注:这是自来水收费的一段功能,在许多QQ群问过,没有得到解答  下量表  bh xlrq         xlje  1 2008-1-1 4  1 2008-2-1 3  1 2008-3-1 4  1 2008-4-1 6  实收表  bh skrq         ssje  1 2008-1-2 2  1 2008-2-2 3  1 2008-2-3 3  1 2008-2-4 6  还款总表  bh xlrq    skrq       hkje  1 2008-1-1   2008-1-2   2  (1号用户在[2008-1-2]这天收的钱2元还给了1号用户在[2008-1-1]所下金额4元,没还清,还欠2元,下次收了再还) 1 2008-1-1   2008-2-2   2   (1号用户在[2008-2-2]这天收的钱3元还给了1号用户在[2008-1-1]由于所下金额还剩的2元,还清了,还余1元) 1 2008-2-1   2008-2-2   1   (1号用户在[2008-2-2]这天收的钱还剩的1元,还给1号用户在[2008-2-1]所下金额3元,没还清,还欠2元) 1 2008-2-1   2008-2-3   2  (1号用户在[2008-2-3]这天收的钱3元,还给上行还欠的2元,没还清,还剩1元) 还款表  bh xlrq     skrq hkje  1 2008-3-1    2008-2-3 1  1 2008-3-1    2008-2-4 3  1 2008-4-1    2008-2-4 3  得出“还款表”是用于合并(通过insert)到“还款总表”,请不要由前两表直接生成新的“还款总表”,那样将来会有问题 我解释一下业务流程: 收水费基本过程,首先需要操作“下量表”,插入一笔如“1 2008-1-1 4 ”表示,[1]号用户在[2008-1-1] 这天被查明欠4元水费。然后收费员下去收费回来操作“实收表”,插入一笔如“1 2008-1-2 2”表示,[1]号 用户在[2008-1-2]这天被收2元水费。 那么为什么还需要第三个表“还款总表”呢?因为用户需要知道他哪天(用“实收表”的bh+skrq确定)还的是哪笔(用“下量表”的bh+xlrq确定), “还款总表”就回答了这个问题,该表正是同一bh用户的skrq和xlrq的对应。 这样一来,我们从“还款总表”中就可以看出每笔“下量”的“实收”情况,有是下量是一笔收清,有的是一笔收清还余(从后继行中能看出),有的是一笔未还清(从后继行中能看出)。 基本要求:在“还款总表”中,“实收表”中的实收金额(ssje)必须完全对应到“下量表”中的下量金额(xlje)(收了就要还到具体的帐上)。当然实收总金额超出了下量总金额时,完全对应后还有余款 。另外也会有完全没还的下量表行,这行下量就不要出现在“还款总表”里了。 当“下量表”或“实收表”中新增或删除了一行或多行时,造成基本要求不满足时(欠了且收了的没体现在“还款总表”中,上面头三个表的状态就是这样的),就需要一个存储过程来产生出“还款表”,然后把“还款表”插入“还款总表”。 最后,不能只有一个用户,请考虑到多个用户bh的情况,当然一个用户不能还到另一个用户上。下量日期(xlrq)较早的优先还掉,收款日期(skrq)较早的优先用来还。

1

我刚回来。帮你研究下。内容比较多,我仔细看下吧。

你在说详细点。我有点晕。是不是求用户交水费的差额?

declare @table_1 table --下量表   ( bh int, xlrq datetime, xlje int ) declare @table_2 table --实收表   ( bh int, skrq datetime, ssje int ) declare @table_3 table --还款总表    ( bh int, xlrq datetime, skrq datetime, hkje int ) declare @table_4 table --还款表  ( bh int, xlrq datetime, skrq datetime, hkje int ) insert @table_1 select 1, '2008-1-1' ,4  union select 1, '2008-2-1' ,3  union select 1,'2008-3-1', 4 union select 1,'2008-4-1',6  union select 2, '2008-1-1' ,4 insert @table_2 select 1, '2008-1-2', 2  union select 1, '2008-2-2', 3  union select 1,' 2008-2-3', 3  union select 1, '2008-2-4',6    insert @table_3 select 1,' 2008-1-1' ,  '2008-1-2', 2 union select 1 ,'2008-1-1' ,  '2008-2-2' ,2  union select 1, '2008-2-1' ,  '2008-2-2', 1     union select 1, '2008-2-1' , ' 2008-2-3' ,  2       --下面求出的是所有用户的还钱总额 select a.bh ,isnull((a.money_1- b.money_2) ,a.money_1) from (  select bh,sum(xlje) as money_1 from @table_1  group by bh) as a left join (select bh,sum(ssje)  as money_2 from @table_2  group by bh ) as b  on a.bh =b.bh --select A.bh,sum(A.xlje-b.ssje) from @table_1 A, @table_2 B where A.bh=B.bh  group by A.bh -- as A inner join @table_2 as B on A.bh=B.bh  group by A.bh

我知道了,你的表设计的有问题。你因该对下量表  和实收表都加个标识位。 就是说,处理的我们可以纪录标识位为1,没处理的纪录标识位为0。这样才方便操作。 要不我们不知道哪个是处理过的,那个是没处理的。 比如:  1号用户在  2   3  4 月分别被告知交水费20元。    可他在5月才去交10元。   这个时候,我们就要对没处理的数据进行统计,得出结果, 放到还款总表 里。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

不明LZ在说什么

上一篇:寻求SQL Server2005 & C# 的程序接口 20分,无满意结帖,结帖人m0792]
下一篇:大家帮忙分析一下这段SQL存储过程的语句,急!!!! 0fredrickhu]

相关文章

相关评论