通过日期参数传递计算出每天的现金余额,怎做可以不通过建存储实现一定日期范围(2个日期之间)结果的展示

SELECT ORG_FINANCEORG.NAME 财务组织,

       BD_CURRTYPE.NAME 币种,

       D.NUM 账户编码,

       --D.NUMNAME 账户名称,

       --D.SUBCODE 子户编码,

       --D.SUBNAME 子户名称,

       D.ACCTYPE 账户类型,

       D.YHLB 银行类别,

       --D.SFSX 收付属性,

       --D.ZJXT 资金形态,

       A.INIT_PRIMAL - NVL(C.PAY, 0) + NVL(C.REC, 0) 期初原币余额,

       A.INIT_LOCAL - NVL(C.OLCPAY, 0) + NVL(C.OLCREC, 0) 期初本币余额,

       --A.GROUPINIT_LOCAL - NVL(C.GLCPAY, 0) + NVL(C.GLCREC, 0) 期初集团本币,

       --A.GLOBALINIT_LOCAL - NVL(C.GLLCPAY, 0) + NVL(C.GLLCREC, 0) 期初全局本币,

       

       B.REC 本期收入原币金额,

       B.OLCREC 本期收入本币金额,

       --B.GLCREC 本期收入集团本币金额,

       --B.GLLCREC 本期收入全局本币金额,

       

       B.PAY 本期支出原币金额,

       B.OLCPAY 本期支出本币金额,

       --B.GLCPAY 本期支出集团本币金额,

       --B.GLLCPAY 本期支出全局本币金额,

       

       A.INIT_PRIMAL - NVL(C.PAY, 0) + NVL(C.REC, 0) - NVL(B.PAY, 0) +

       NVL(B.REC, 0) 期末原币金额,

       A.INIT_LOCAL - NVL(C.OLCPAY, 0) + NVL(C.OLCREC, 0) -

       NVL(B.OLCPAY, 0) + NVL(B.OLCREC, 0) 期末本币金额 

       

       --A.CURRENT_PRIMAL 账面原币余额,

       --A.CURRENT_LOCAL 账面本币余额,

       --A.GROUPCURRENT_LOCAL 账面集团本币,

       --A.GLOBALCURRENT_LOCAL 账面全局本币,

       --A.PK_ORG 组织PK,

       --A.PK_CURRTYPE 币种PK,

       --A.PK_ACCOUNT 账户PK,

       --A.ORGACC1 组织及账户,

       --A.PK_INITDATA 期初主键,

       --A.PK_GROUP 集团PK,

       --A.FORMCODE 资金形态枚举值,

       --BD_BANKACCSUB.PK_BANKACCSUB 银行账户子户主键,

       --BD_CASHACCOUNT.PK_CASHACCOUNT 现金账户主键,

       --D.YHLBPK 银行类别主键,

       --SUBSTR(BD_BANKACCBAS.ACCXHDATE, 0, 10) 销户日期

  FROM VIEW_HF_NC_FIN_ZHYEB_QC A

  LEFT JOIN (SELECT PK_ACCOUNT AS PKACCOUNT,

                    PK_ORG AS ORG,

                    SUM(PAYMONEY) AS PAY,

                    SUM(OLCPAYMONEY) AS OLCPAY,

                    SUM(GLCPAYMONEY) AS GLCPAY,

                    SUM(GLLCPAYMONEY) AS GLLCPAY,

                    SUM(RECMONEY) AS REC,

                    SUM(OLCRECMONEY) AS OLCREC,

                    SUM(GLCRECMONEY) AS GLCREC,

                    SUM(GLLCRECMONEY) AS GLLCREC,

                    CONCAT(PK_ORG, PK_ACCOUNT) AS ORGACC2

               FROM CMP_BANKACCDETAIL

              WHERE TALLYDATE = '${日期}'

                AND USEFLAG = 1

              GROUP BY PK_ORG, PK_ACCOUNT) B

    ON A.ORGACC1 = B.ORGACC2

  LEFT JOIN (SELECT PK_ACCOUNT AS PK,

                    PK_ORG AS ORG,

                    SUM(PAYMONEY) AS PAY,

                    SUM(OLCPAYMONEY) AS OLCPAY,

                    SUM(GLCPAYMONEY) AS GLCPAY,

                    SUM(GLLCPAYMONEY) AS GLLCPAY,

                    SUM(RECMONEY) AS REC,

                    SUM(OLCRECMONEY) AS OLCREC,

                    SUM(GLCRECMONEY) AS GLCREC,

                    SUM(GLLCRECMONEY) AS GLLCREC,

                    CONCAT(PK_ORG, PK_ACCOUNT) AS ORGACC3

               FROM CMP_BANKACCDETAIL

              WHERE TALLYDATE < '${日期}'

                AND USEFLAG = 1

              GROUP BY PK_ORG, PK_ACCOUNT) C

    ON A.ORGACC1 = C.ORGACC3

  LEFT JOIN VIEW_HF_NC_FIN_ZHYEB_QT D

    ON A.PK_INITDATA = D.PK_INITDATA

  LEFT JOIN BD_CURRTYPE BD_CURRTYPE

    ON A.PK_CURRTYPE = BD_CURRTYPE.PK_CURRTYPE

   AND NVL(BD_CURRTYPE.DR, 0) = 0

  LEFT JOIN ORG_FINANCEORG ORG_FINANCEORG

    ON A.PK_ORG = ORG_FINANCEORG.PK_FINANCEORG

   AND NVL(ORG_FINANCEORG.DR, 0) = 0

  LEFT JOIN BD_BANKACCSUB BD_BANKACCSUB

    ON A.PK_ACCOUNT = BD_BANKACCSUB.PK_BANKACCSUB

   AND NVL(BD_BANKACCSUB.DR, 0) = 0

  LEFT JOIN BD_CASHACCOUNT BD_CASHACCOUNT

    ON A.PK_ACCOUNT = BD_CASHACCOUNT.PK_CASHACCOUNT

   AND NVL(BD_CASHACCOUNT.DR, 0) = 0

  LEFT JOIN BD_BANKACCBAS BD_BANKACCBAS

    ON BD_BANKACCSUB.PK_BANKACCBAS = BD_BANKACCBAS.PK_BANKACCBAS

   AND NVL(BD_BANKACCBAS.DR, 0) = 0

   AND (SUBSTR(BD_BANKACCBAS.ACCXHDATE, 0, 10) >= '${日期}' OR

       BD_BANKACCBAS.ACCXHDATE IS NULL)

 WHERE NVL(A.DR, 0) = 0


FineReport 13225099418 发布于 2019-10-21 11:03 (编辑于 2019-10-21 11:04)
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
chenhui97Lv2见习互助
发布于2019-10-21 11:06

可以传两个日期参数,一个是开始的日期,一个是结束的日期,用两个时间控件控制

  • 13225099418 13225099418(提问者) 计算公式里面要是按某个固定日期比如10月1号来算出银行余额(特别强调,日期要赋值到公式中参与计算后得出日余额,不是直接按日期查询),展示又要求是按日期范围展示不同日期范围的结果
    2019-10-21 11:33 
最佳回答
0
孤陌Lv6资深互助
发布于2019-10-21 12:40(编辑于 2019-10-21 12:49)

不懂 你想要达到什么效果 

建议上原始数据图 然后再上你想要的效果

最佳回答
0
凌建Lv7高级互助
发布于2019-10-21 12:45

没明白

  • 13225099418 13225099418(提问者) 数据库本身没有日期这一列,日期参数选10月1号得到一个计算结果,日期参数选10月2号得到另外一个计算结果(日期参数在这结果得出的过程中是作为SQL的判断条件,不是查询条件),现在如何实现日期范围内(比如开始日期10月1号,结束日期10月20号)的日结果按日期展示
    2019-10-21 17:24 
  • 凌建 凌建 回复 13225099418(提问者) 要么数据库使用case when 自定义日期列,要么用控件绑定参数,根据参数控件查询条件隐藏行高
    2019-10-22 08:11 
  • 4关注人数
  • 503浏览人数
  • 最后回答于:2019-10-21 12:49
    请选择关闭问题的原因
    确定 取消
    返回顶部