zoukankan      html  css  js  c++  java
  • 报表查询:收费汇总表

    收费汇总表,需要考虑的是如何避免重复数据的问题

    报表查询sql

    SELECT * from (
    SELECT
        ROWNUM AS ID,
        TT.*,
        NVL(SF.JFJE,0) JFJE,--取收费表的交费金额,其他暂不考虑
        TRUNC(QFJE1/NVL(SF.COUNT,1),1)+NVL(SF.JFJE,0) as YSJE,--欠费+交费=应收
        NVL(SF.JFRQ,?) AS JFRQ,--未交费的(原无交费日期),赋一个交费日期,包含在查询范围内
        TRUNC(SFMJ1/NVL(SF.COUNT,1),2)  SFMJ,--有多笔交费记录的,统计时会统计上,这里除以个数,最后统计和为sfmj
        TRUNC(QFJE1/NVL(SF.COUNT,1),1)  QFJE--欠费金额,防止多笔交费后仍有欠费
        
    FROM
        (
        SELECT
            SF_JMYH_T.YHBM                                     AS  YHBM,
            SF_JMYH_T.YHBH                                    AS YHBH,
            SF_JMYH_T.YHMC                                    AS  YHMC,
            SF_JMYH_T.FGS                                       AS  FGS ,
            SF_JMYH_T.RLZ                                        AS  RLZ,
            SF_JMYH_T.XQ                                          AS  XQ ,
            SF_JMJS_T.CNQ                                       AS  CNQ,      
            SF_JMJS_T.SFMJ                                      AS  SFMJ1,
              /*只适用单笔交费的,不合理*/
            --SF_JMJS_T.YSJE +SF_JMJS_T.JBCNFYS        AS  YSJE,
            --SF_JMJS_T.SFJE+SF_JMJS_T.JBCNFSF+SF_JMJS_T.HJJE -SF_JMJS_T.YJJE         AS  JFJE,
            SF_JMJS_T.QFJE +SF_JMJS_T.JBCNFQF       AS  QFJE1      
        FROM
            SF_JMYH_T ,
            SF_JMJS_T
        WHERE
                (SF_JMYH_T.ZF=0)
            AND (SF_JMJS_T.ZF=0)       
             AND (SF_JMJS_T.YHBH=SF_JMYH_T.YHBH)     
    and  (SF_JMJS_T.CNQ= ? or ? is null )
    and  (SF_JMYH_T.FGS   = ? or ? is null )
    and  (SF_JMYH_T.rlz   = ? or ? is null )
    and  (SF_JMYH_T.xq   = ? or ? is null )
    and  (SF_JMYH_T.yhlb   = ? or ? is null ) 
        ) TT,(select * from sf_jmsf_t,(select yhbh yhbh2,count(yhbh) COUNT from sf_jmsf_t where zf=0 and cnq= ? group by yhbh) SFCOUNT where 
    sf_jmsf_t.zf=0 and sf_jmsf_t.yhbh =SFCOUNT.yhbh2(+)) SF WHERE TT.cnq=sf.cnq(+) and TT.yhbh =sf.yhbh(+)) TTT
           /*SF统计 收费表字段和同一个yhbh在同一个cnq出现的个数(多个即为多次交费)*/
        WHERE (TTT.jfrq>= ? )
              and  (TTT.jfrq<= ? )

    查询界面如下

     数据库查询

  • 相关阅读:
    mysql生成日历表
    入园第一篇
    写于2010年元旦
    C#中abstract与virtual的用法
    大学时的基础知识,回顾一下
    《大话设计模式》读书笔记建造者模式
    转:你真的了解分层架构吗?——写给被PetShop"毒害"的朋友们
    《大话设计模式》读书笔记观察者模式
    客户端与服务器端交互原理[转]
    js取得gridview中获取checkbox选中的值
  • 原文地址:https://www.cnblogs.com/zjfjava/p/8245618.html
Copyright © 2011-2022 走看看