以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  查询表代码  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=14498)

--  作者:bm
--  发布时间:2011/11/22 8:58:00
--  查询表代码

求救各位高手一共三个表。中间的表中的”支出“”收入“”余额“都是表达试例。现在想要不用表达式。直接用代码生成临时表(和第二个表一样)。因为一定要全部加载”余额“才能正确。

帮忙改一下代码

 

Dim jb As New SQLJoinTableBuilder("查询表1","账户管理")
jb.AddTable("账户管理","账户名称","支出明细","支出账户")
jb.AddTable("账户管理","账户名称","收入","收入账户")
jb.AddCols("账户名称")

jb.AddCols("初始金额")
jb.AddExp("支出","Sum({支出明细}.金额)")
jb.AddExp("收入","Sum({收入}.金额)")

jb.AddExp("余额","初始金额-支出+收入“)
jb.Build()
MainTable = Tables("查询表1")

 


图片点击可在新窗口打开查看此主题相关图片如下:截图38.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:截图37.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:截图36.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2011-11-22 9:12:19编辑过]

--  作者:狐狸爸爸
--  发布时间:2011/11/22 9:12:00
--  
将这三个表传上来啊,否则怎么测试代码?
--  作者:bm
--  发布时间:2011/11/22 9:24:00
--  请帮忙看看

谢谢了。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:我的工作_1121.zip

密码888

[此贴子已经被作者于2011-11-22 9:24:33编辑过]

--  作者:狐狸爸爸
--  发布时间:2011/11/22 10:10:00
--  
Dim jb As New SQLJoinTableBuilder("查询表1","账户管理")
jb.AddTable("账户管理","账户名称","支出明细","支出账户")
jb.AddTable("账户管理","账户名称","收入","收入账户")
jb.AddCols("账户名称",True)
jb.AddCols("初始金额",True)
jb.AddExp("支出","Sum({支出明细}.金额)")
jb.AddExp("收入","Sum({收入}.金额)")
jb.AddExp("余额","初始金额-支出+收入")
jb.Build()
MainTable = Tables("查询表1")

--  作者:bm
--  发布时间:2011/11/22 10:40:00
--  狐狸爸爸请您再看看
这个表达式感觉不对。出来的结果不一样。
图片点击可在新窗口打开查看此主题相关图片如下:截图40.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:截图39.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2011-11-22 10:40:51编辑过]

--  作者:狐狸爸爸
--  发布时间:2011/11/22 10:43:00
--  
Dim jb As New SQLJoinTableBuilder("查询表1","账户管理")
jb.AddTable("账户管理","账户名称","支出明细","支出账户")
jb.AddTable("账户管理","账户名称","收入","收入账户")
jb.AddCols("账户名称",True)
jb.AddCols("初始金额")
jb.AddExp("支出","Sum({支出明细}.金额)")
jb.AddExp("收入","Sum({收入}.金额)")
jb.AddExp("余额","初始金额-支出+收入")
jb.Build()
MainTable = Tables("查询表1")

--  作者:bm
--  发布时间:2011/11/22 11:15:00
--  狐狸爸爸请您看看

测试出错了。不会改。帮忙再看看。


图片点击可在新窗口打开查看此主题相关图片如下:截图41.jpg
图片点击可在新窗口打开查看

--  作者:狐狸爸爸
--  发布时间:2011/11/22 12:04:00
--  

还是这个代码正确:

 

Dim jb As New SQLJoinTableBuilder("查询表1","账户管理")
jb.AddTable("账户管理","账户名称","支出明细","支出账户")
jb.AddTable("账户管理","账户名称","收入","收入账户")
jb.AddCols("账户名称",True)
jb.AddCols("初始金额",True)
jb.AddExp("支出","Sum({支出明细}.金额)")
jb.AddExp("收入","Sum({收入}.金额)")
jb.AddExp("余额","初始金额-支出+收入")
jb.Build()
MainTable = Tables("查询表1")

 

只有两行数据,是因为的收入表没有“建行账户”,这种连接取得每个表都有的分组。

[此贴子已经被作者于2011-11-22 12:05:54编辑过]

--  作者:bm
--  发布时间:2011/11/22 12:11:00
--  狐狸爸爸请您看看

这三个表是关联表。”账户管理。支出“关联的例是“账户名称”“支出账户”。    ”账户管理。收入“关联的例是  “账户名称”“收入账户”。

那个余额也不一样的。因为一定要加载所有数据才能算出余额。所以想改。

余额的表达式。IsNull([初始金额],0) - IsNull([支出],0) + IsNull([收入],0)

支出的表达式Sum(Child(ZC).金额)

收入的表达式Sum(Child(SR).金额)

[此贴子已经被作者于2011-11-22 12:26:55编辑过]

--  作者:bm
--  发布时间:2011/11/22 12:32:00
--  自己顶一下。
自己顶一下。