以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]S elect 语句求助 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=150708) |
-- 作者:huangfanzi -- 发布时间:2020/6/5 12:51:00 -- [求助]S elect 语句求助 项目中要算客户的欠款利息,现在的思路是算出每天的欠款金额并根据利率算出利息,如下图所示,我希望能让用户输入一个时间段,直接查询出这个时间段内每天的欠款金额,现在算每一天的欠款金额没有问题,就是不如如何运UNION把每天的查询结果组合到一起,就是说让用户统计起始录入2020-6-1,统计结束录入2020-6-3,然后3天的结果显示在一起 另外,查询表中我加了一个“统计日期”列,如何让这个统计日期等于 rq1 zd = "属性,类型,合同编号,合同附属编号,合同关联编号,我方简称,对方简称,类别,品名,规格,单位" Do While rq1 <= rq2 \'rq1统计起始日期 rq2是统计结束日期 Dim flt As String = "审核=1 And 属性 = \'对外\' And 类型 = \'销售\' And 结算类型 = \'应收应付\' And 结算日期 <= \'" & rq1 & "\'" ppsz = ",ISNULL((S elect Sum(金额) from {收支录入} d where d.合同编号 = a.合同编号 And d.日期 <= \'" & rq1 & "\' And d.审核 = 1),0) As 已收金额,ISNULL((S elect Sum(结算含税金额) from {业务结算} b where b.合同编号 = a.合同编号 And b.结算日期 <= \'" & rq1 & "\' And b.审核 = 1 And b.结算类型 = \'应收应付\'),0) - ISNULL((S elect Sum(金额) from {收支录入} d where d.合同编号 = a.合同编号 And d.日期 <= \'" & rq1 & "\' And d.审核 = 1),0) As 应收金额" t.Fill("s elect \'2020-1-1\' As 统计日期," & zd & ",Sum(结算含税金额) As 结算含税金额" & ppsz & " From {业务结算} As a Where " & flt & " GROUP BY " & zd ,"ShcsErpSql",True) rq1 = rq1.AddDays(1) Loop [此贴子已经被作者于2020/6/5 12:53:38编辑过]
|
-- 作者:有点蓝 -- 发布时间:2020/6/5 14:01:00 -- 方法1、加载数据后按照流水账单方法使用代码计算:http://www.foxtable.com/webhelp/topics/2136.htm 2、上传实例测试,或者自己看看:https://www.cnblogs.com/mylhei/articles/1978184.html
|
-- 作者:huangfanzi -- 发布时间:2020/6/5 14:20:00 -- 解决了 zd = "属性,类型,合同编号,合同附属编号,合同关联编号,我方简称,对方简称,类别,品名,规格,单位" Do While rq1 <= rq2 Dim flt As String = "审核=1 And 属性 = \'对外\' And 类型 = \'销售\' And 结算类型 = \'应收应付\' And 结算日期 <= \'" & rq1 & "\'" ppsz = ",ISNULL((S elect Sum(金额) from {收支录入} d where d.合同编号 = a.合同编号 And d.日期 <= \'" & rq1 & "\' And d.审核 = 1),0) As 已收金额,ISNULL((S elect Sum(结算含税金额) from {业务结算} b where b.合同编号 = a.合同编号 And b.结算日期 <= \'" & rq1 & "\' And b.审核 = 1 And b.结算类型 = \'应收应付\'),0) - ISNULL((S elect Sum(金额) from {收支录入} d where d.合同编号 = a.合同编号 And d.日期 <= \'" & rq1 & "\' And d.审核 = 1),0) As 应收金额" cx = cx & " UNION s elect \'" & rq1 & "\' As 统计日期," & zd & ",Sum(结算含税金额) As 结算含税金额" & ppsz & " From {业务结算} As a Where " & flt & " GROUP BY " & zd rq1 = rq1.AddDays(1) Loop cx = cx.Remove(0,6) t.Fill(cx,"ShcsErpSql",True) [此贴子已经被作者于2020/6/5 14:22:55编辑过]
|
-- 作者:有点蓝 -- 发布时间:2020/6/5 14:52:00 -- 如果选择的日期多了,得拼多长的语句,何况效率也不高。有空还是建议琢磨一下上面网页里递归sql的用法 |