Foxtable(狐表)用户栏目专家坐堂 → sql 今天的上日余额 = 昨天的本日余额


  共有2230人关注过本帖树形打印复制链接

主题:sql 今天的上日余额 = 昨天的本日余额

帅哥哟,离线,有人找我吗?
fubblyc
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2019/9/20 15:35:00 [只看该作者]

老师,您看下:


以下内容是专门发给有点蓝浏览



代码如下:

cmd.commandtext = "updat e 资金日报账户表 set 本日增加 = a.本日增加 , 本日减少 = a.本日减少 from 科目表明细 As a where a.项目编号 = 资金日报账户表.项目编号 and  a.日期 = 资金日报账户表.日期 "
cmd.ExecuteNonQuery


cmd.commandtext = "updat e 资金日报账户表 set 上日余额 = a.iBeAcc  from mBalance As a where a.cCode = 资金日报账户表.项目编号 and  资金日报账户表.日期 = '2019-01-01' and a.iYear = '2019' and a.iM "
cmd.ExecuteNonQuery

cmd.commandtext = "updat e 资金日报账户表 set 本日余额 = ISNULL([上日余额],0) + ISNULL([本日增加],0) - ISNULL([本日减少],0)  "  '
cmd.ExecuteNonQuery

cmd.commandtext = "updat e 资金日报账户表 set 上日余额 = null where 上日余额 = 0  "  '
cmd.ExecuteNonQuery

cmd.commandtext = "updat e 资金日报账户表 set 本日增加 = null where 本日增加 = 0  "  '
cmd.ExecuteNonQuery

cmd.commandtext = "updat e 资金日报账户表 set 本日减少 = null where 本日减少 = 0  "  '
cmd.ExecuteNonQuery

cmd.commandtext = "updat e 资金日报账户表 set 本日余额 = null where 本日余额 = 0  "  '
cmd.ExecuteNonQuery


cmd.commandtext = "updat e 资金日报账户表 set 上日余额 = a.本日余额 from 资金日报账户表 As a  where a.项目编号 = 项目编号 And a.日期 = DateAdd(d, -1, 日期)  "  '
cmd.ExecuteNonQuery


cmd.commandtext = "updat e 资金日报账户表 set 本日增加 = (selec t sum(本日增加) from 资金日报账户表 as a where a.行别顺序 = '1'  and a.日期 = 日期) from 资金日报账户表 where 行别顺序 = '2'  "  
cmd.ExecuteNonQuery


以行别顺序来区分哈。
然后 那个 银行账户小计 也就是 行别顺序的= 2 的求和 行别顺=1 的,还是加到一起了,没有按日期分开算

[此贴子已经被作者于2019/9/20 15:37:04编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
fubblyc
  12楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2019/9/20 15:43:00 [只看该作者]

蓝老大,
cmd.commandtext = "updat e 资金日报账户表 set 本日增加 = a.本日增加 , 本日减少 = a.本日减少 from 科目表明细 As a where a.项目编号 = 资金日报账户表.项目编号 and  a.日期 = 资金日报账户表.日期 "
cmd.ExecuteNonQuery


cmd.commandtext = "updat e 资金日报账户表 set 上日余额 = a.iBeAcc  from mBalance As a where a.cCode = 资金日报账户表.项目编号 and  资金日报账户表.日期 = '2019-01-01' and a.iYear = '2019' and a.iM "
cmd.ExecuteNonQuery

这两个语句无关,同时涉及到其他表,就不用去执行了

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  13楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107014 积分:544295 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/9/20 16:25:00 [只看该作者]

这种没有办法一条sql语句搞定。看看流水账的用法:http://www.foxtable.com/webhelp/topics/2136.htm

 回到顶部
帅哥哟,离线,有人找我吗?
fubblyc
  14楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2019/9/20 16:36:00 [只看该作者]

好咧。
老师,

那个 银行账户小计 也就是 行别顺序的= 2 的求和 行别顺=1 的,还是加到一起了,没有按日期分开算

cmd.commandtext = "updat e 资金日报账户表 set 本日增加 = (selec t sum(本日增加) from 资金日报账户表 as a where a.行别顺序 = '1'  and a.日期 = 日期) from 资金日报账户表 where 行别顺序 = '2'  "  
cmd.ExecuteNonQuery

这个好像没反应,你帮忙看下~~

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  15楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107014 积分:544295 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/9/20 17:00:00 [只看该作者]

cmd.commandtext = "update b set b.本日增加 = (select sum(a.本日增加) from 资金日报账户表 as a where a.行别顺序 = b.行别顺序-1  and a.日期 = b.日期) from 资金日报账户表 as b where b.项目 = '银行账户小计'"  

 回到顶部
帅哥哟,离线,有人找我吗?
fubblyc
  16楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2019/9/23 10:40:00 [只看该作者]

老师,行间计算,如果是 减  的,要怎么处理呢?
用sql语句速度是非常快,非常爽。


图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20190923103503.png
图片点击可在新窗口打开查看


我之前是这样写的:
Dim r21 As DataRow = Forms("资金日报填写").Controls("table2").Table.DataTable.find("项目编号 = '10020163' ")
Dim r41 As DataRow = Forms("资金日报填写").Controls("table2").Table.DataTable.find("项目编号 = '10020142' ")
r21("本日增加") = r21("本日增加") - r41("本日增加")



 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  17楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107014 积分:544295 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/9/23 11:02:00 [只看该作者]

只能这样

 回到顶部
帅哥哟,离线,有人找我吗?
fubblyc
  18楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2019/9/23 11:08:00 [只看该作者]

好的,谢谢蓝老师

 回到顶部
总数 18 上一页 1 2