标题:查询凭证与余额表的游标
只看楼主
huangfrsj
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2012-9-4
得分:0 
回复 10楼 antjl
对不起了,大虾...
刚才认真地运行了一下,发现结果确实不一样,但仍出现了状况。运行修改前的语句的结果是:
年度    会计月份    科目编码      科目名称      期初余额    借方金额     贷方金额    期末余额
2011       1        1010102    备用金--报账员    10000      198981.97    177181.97    31800
2011       3        1010102    备用金--报账员    31800      44209        66009        10000
2011       4        1010102    备用金--报账员    10000      27471.35     27471.35     10000
2011       5        1010102    备用金--报账员    10000      27240.35     27240.35     10000
2011       6        1010102    备用金--报账员    10000      20480.35     30480.35        0
2011       7        1010102    备用金--报账员    0          45652        25652        20000
2011       8        1010102    备用金--报账员    20000      45334.5      45334.5      20000
2011       9        1010102    备用金--报账员    20000      26044        26044        20000
2011      10        1010102    备用金--报账员    20000      46029.5      46029.5      20000
2011      11        1010102    备用金--报账员    20000      58183        38183        40000
2011      12        1010102    备用金--报账员    40000      187916.76    187916.76    40000
2012       1        1010102    备用金--报账员    70000      76280.5      36280.5      110000
2012       2        1010102    备用金--报账员    110000     29809.78     29809.78     110000
2012       3        1010102    备用金--报账员    110000     159959       79959        190000
2012       4        1010102    备用金--报账员    190000     55745        25745        220000
2012       5        1010102    备用金--报账员    220000     49839.8      199839.8     70000
2012       6        1010102    备用金--报账员    70000      56390.5      26390.5      100000
2012       7        1010102    备用金--报账员    100000     66239.08     116239.08    50000
2012       8        1010102    备用金--报账员    50000          0            0        50000
2012       9        1010102    备用金--报账员    70000          0         20000       50000
2012      9      1010103   宋云           -10000     56710.5    36710.5     10000
2012     10      1010103   宋云            10000     40410      40410       10000
2012     11      1010103   宋云            10000     14214      14214       10000
2012     12      1010103   宋云            10000     40265.7    40265.7     10000

运行修改后的语句的结果是:
年度    会计月份    科目编码      科目名称     期初余额    借方金额    贷方金额    期末余额
2011       1        1010102    备用金--报账员    10000    198981.97    177181.97    31800
2011       3        1010102    备用金--报账员    31800    44209        66009        10000
2011       4        1010102    备用金--报账员    10000    27471.35     27471.35     10000
2011       5        1010102    备用金--报账员    10000    27240.35     27240.35     10000
2011       6        1010102    备用金--报账员    10000    20480.35     30480.35      0
2011       7        1010102    备用金--报账员    0        45652        25652        20000
2011       8        1010102    备用金--报账员    20000    45334.5      45334.5      20000
2011       9        1010102    备用金--报账员    20000    26044        26044        20000
2011      10        1010102    备用金--报账员    20000    46029.5      46029.5      20000
2011      11        1010102    备用金--报账员    20000    58183        38183        40000
2011      12        1010102    备用金--报账员    40000    187916.76    187916.76    40000
2012       1        1010102    备用金--报账员    40000    76280.5      36280.5      80000
2012       2        1010102    备用金--报账员    80000    29809.78     29809.78     80000
2012       3        1010102    备用金--报账员    80000    159959       79959        160000
2012       4        1010102    备用金--报账员    160000    55745       25745        190000
2012       5        1010102    备用金--报账员    190000    49839.8     199839.8     40000
2012       6        1010102    备用金--报账员    40000    56390.5      26390.5      70000
2012       7        1010102    备用金--报账员    70000    66239.08     116239.08    20000
2012     8       1010102   备用金--报账员   20000     0           0       20000
2012     9       1010102   备用金--报账员   40000     0        20000      20000

首先:两个结果比较的话,第二个结果少了“宋云”这个的科目的四条记录
其次:第二个结果中八月份期末余额不是九月份的期初余额。




[ 本帖最后由 huangfrsj 于 2013-8-7 12:52 编辑 ]
2013-08-07 12:48
antjl
Rank: 2
等 级:论坛游民
威 望:1
帖 子:21
专家分:71
注 册:2012-8-16
得分:0 
Select Min(年度) As 年度,科目编码 Into ##余额表 From 余额表 Group By 科目编码

Go

Select 年度,会计月份,科目编码,科目名称,Sum(借方金额) As 借方金额,Sum(贷方金额) As  贷方金额 Into ##凭证库 From 凭证库 Group By 年度,会计月份,科目编码,科目名称 Order By 年度,会计月份,科目编码,科目名称

Go

Select a.年度,a.会计月份,a.科目编码,a.科目名称,c.期初余额+Sum(b.借方金额)-Sum(b.贷方金额)-a.借方金额+a.贷方金额 As 期初余额,a.借方金额,a.贷方金额,c.期初余额+Sum(b.借方金额)-Sum(b.贷方金额) As 期末余额
From ##凭证库 a,##凭证库 b,余额表 c,##余额表 d
Where a.科目编码=b.科目编码 And a.科目编码=c.科目编码 And a.科目编码 Like '101%' And b.科目编码 Like '101%'
And a.年度 In (2011,2012) And b.年度 In (2011,2012) And c.年度 In (2011,2012) And d.年度 In (2011,2012)
And c.年度=d.年度 And c.科目编码=d.科目编码
And Cast(Cast(a.会计月份 As VarChar(4)) + '-1'+'-'+Cast(a.年度 As VarChar(4)) As DateTime)>=Cast(Cast(b.会计月份 As VarChar(4)) + '-1'+'-'+Cast(b.年度 As VarChar(4)) As DateTime)
Group By a.年度,a.会计月份,a.科目编码,a.科目名称,c.期初余额,a.借方金额,a.贷方金额
Order By a.年度,a.会计月份,a.科目编码,a.科目名称,c.期初余额

Go

Drop Table ##余额表
Drop Table ##凭证库

Go

[ 本帖最后由 antjl 于 2013-8-7 14:00 编辑 ]
收到的鲜花
  • huangfrsj2013-08-07 15:04 送鲜花  3朵   附言:我很赞同
2013-08-07 13:59
huangfrsj
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2012-9-4
得分:0 
回复 12楼 antjl
谢了,大虾,帮了我大忙了!
2013-08-07 15:05
antjl
Rank: 2
等 级:论坛游民
威 望:1
帖 子:21
专家分:71
注 册:2012-8-16
得分:0 
不客气,不过第一条语句最好改下(加上年份限制,这样你查询其他年份的时候,年份跟着改变就行了):
Select Min(年度) As 年度,科目编码 Into ##余额表 From 余额表 Where 年度 In (2011,2012) Group By 科目编码
...
2013-08-08 09:40
huangfrsj
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2012-9-4
得分:0 
回复 14楼 antjl
谢谢,我在运行时已经改了!
2013-08-08 16:56



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-418544-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.571972 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved