Foxtable(狐表)用户栏目专家坐堂 → [求助]账龄表的查询代码,已经上传例子,请老师帮忙下,10楼有新问题,请老师看下


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

主题:[求助]账龄表的查询代码,已经上传例子,请老师帮忙下,10楼有新问题,请老师看下

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


加好友 发短信
等级:五尾狐 帖子:1104 积分:8956 威望:0 精华:0 注册:2014/10/25 11:24:00
[求助]账龄表的查询代码,已经上传例子,请老师帮忙下,10楼有新问题,请老师看下  发帖心情 Post By:2018/1/15 13:58:00 [只看该作者]

做了个例子,项目中有:
发货表:记录某公司的发货日期与金额
收款表:记录某公司的收款日期与金额
账龄表:是我人工做的账龄
请老师写个代码能用查询表生成例子中的账龄表,想了二天了,实在做不出来。万分感谢!

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:账龄计算测试.zip



[此贴子已经被作者于2018/1/15 19:47:00编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/1/15 14:12:00 [只看该作者]


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


加好友 发短信
等级:五尾狐 帖子:1104 积分:8956 威望:0 精华:0 注册:2014/10/25 11:24:00
  发帖心情 Post By:2018/1/15 14:21:00 [只看该作者]

这个例子我看过,现在的困难在于做出发货金额的时段分布图后,如何再用收到的款去减各个时段的发货金额,并优先减最早时段发货的,对SQL语句就懂些皮毛,这里有点搞不定了。

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/1/15 14:42:00 [只看该作者]

方法二:如果sql语句,就这样写

 

select 公司, sum(应收款) as 应收款, (select sum(应收款) from (select 公司, datediff('d', 收款日期, date()) as 天数, -收款金额 as 应收款 from {收款} union all select 公司, datediff('d', 发货日期, date()) as 天数, 发货金额 from {发货}) as b where a.公司=b.公司 and b.天数 >= 1 and b.天数 <= 30) as [账龄1-30天],(select sum(应收款) from (select 公司, datediff('d', 收款日期, date()) as 天数, -收款金额 as 应收款 from {收款} union all select 公司, datediff('d', 发货日期, date()) as 天数, 发货金额 from {发货}) as b where a.公司=b.公司 and b.天数 >= 31 and b.天数 <= 60) as [账龄31-60天] from (select 公司, datediff('d', 收款日期, date()) as 天数, -收款金额 as 应收款 from {收款} union all select 公司, datediff('d', 发货日期, date()) as 天数, 发货金额 from {发货}) as a group by 公司


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/1/15 14:45:00 [只看该作者]

以下是引用huangfanzi在2018/1/15 14:21:00的发言:
这个例子我看过,现在的困难在于做出发货金额的时段分布图后,如何再用收到的款去减各个时段的发货金额,并优先减最早时段发货的,对SQL语句就懂些皮毛,这里有点搞不定了。

 

比如你要计算 1-30日的,那就合成条件如

 

"发货日期 >= #" & date.Today.AddDays(-30) & "# and 发货日期 <= #" & date.Today.AddDays(-1) & "#"

[此贴子已经被作者于2018/1/15 14:44:51编辑过]

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


加好友 发短信
等级:五尾狐 帖子:1104 积分:8956 威望:0 精华:0 注册:2014/10/25 11:24:00
  发帖心情 Post By:2018/1/15 14:52:00 [只看该作者]

老师,代码有问题啊,datediff('d',   这一段中的  导致后面的代码变成灰色了

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/1/15 14:59:00 [只看该作者]

以下是引用huangfanzi在2018/1/15 14:52:00的发言:
老师,代码有问题啊,datediff('d',   这一段中的  导致后面的代码变成灰色了

 

认认真真看懂上面说什么了啊 http://www.foxtable.com/webhelp/scr/1484.htm

 


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


加好友 发短信
等级:五尾狐 帖子:1104 积分:8956 威望:0 精华:0 注册:2014/10/25 11:24:00
  发帖心情 Post By:2018/1/15 18:32:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:账龄比对.jpg
图片点击可在新窗口打开查看
老师,附件是我根据您的例子依样写的代码,但查询的结果是不对的,所出的问题在下面的图上,请帮我看看,谢谢!另外奇怪的是,我怎么直接发出不代码,而老师能发出来。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:sql代码.txt





[此贴子已经被作者于2018/1/15 18:32:57编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/1/15 19:00:00 [只看该作者]

1、根据发货表,统计应收金额,如

 

http://www.foxtable.com/webhelp/scr/0681.htm

 

2、请自行完成第一步。

 

3、循环统计表的每一行,统计收款表的总和,从最后一列依次减去对应的数额即可。

[此贴子已经被作者于2018/1/15 19:01:20编辑过]

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


加好友 发短信
等级:五尾狐 帖子:1104 积分:8956 威望:0 精华:0 注册:2014/10/25 11:24:00
  发帖心情 Post By:2018/1/15 19:38:00 [只看该作者]

我有思路了,看来不能用一条SQL语句做,我就分步做,下面的代码请老师帮我看下:
Tables(e.Form.Name & "_Table1").Fill("s elect 公司,SUM(发货金额) as 发货金额,(s elect  sum(收款金额) from {收款} b where a.公司 = b.公司 ) as 收款金额 f rom {发货} as a group by 公司",True)

If DataTables(e.Form.Name & "_Table1").datacols.Contains("应收款") Then
Else
    DataTables(e.Form.Name & "_Table1").DataCols.Add("应收款", Gettype(Double))
End If

For Each r As Row In Tables(e.Form.Name & "_table1").Rows
r("应收款") = r("发货金额") - r("收款金额")
Next
上面的代码是可以达到我想的要求,但感觉太繁琐,如何在SQL语句中把应收款直接做上去,就像老师你上面的代码得到的结果,上面的代码我没看明白是如何得到应收款的
关键是我想在SQL语句中加个条件,让应收款为负数的(就是不欠钱)不要出现在table表中
[此贴子已经被作者于2018/1/15 19:39:13编辑过]

 回到顶部
总数 12 1 2 下一页