• 神奇的sql:10最新月完成凭证数.sql


    提出问题:

    感谢itpub,感谢北京涅,感谢贵州。

    sql起源:信息化检查,高经理让王经理查询一下各个项目部NC的使用情况,也就是查询出各个公司做账到了什么时候,近200个项目,我看到王经理一个个的NC进入,效率太低。

    当时想到使用sql。

    开始自己搞,可是实在不行,寻找itpub帮助,成功:

    select *
      from (select UNITCODE,
                   unitname,
                   year,
                   period,
                   num1,
                   row_number() over(partition by UNITNAME order by YEAR desc,period desc) mm
              from (select BD_CORP.UNITCODE,
                           bd_corp.unitname,
                           gl_voucher.year,
                           gl_voucher.period,
                           count(*) num1
                      from gl_voucher, bd_corp
                     where bd_corp.pk_corp = gl_voucher.pk_corp
                          and gl_voucher.dr='0'
                     group by BD_CORP.UNITCODE,
                              bd_corp.unitname,
                              gl_voucher.year,
                              gl_voucher.period)
            
            )
     where mm = 1
     ORDER BY UNITCODE;

    效果图:

    今天群里的上海萝卜提了一个类似要求,我们开始讨论,贵州给了一个sql:

    SELECT ID,MIN(data) FROM 表名 GROUP BY ID;

    我当时使用无所不能的partition,北京涅居然给我写出了一个简单有效的sql,太厉害(oracle也很厉害,它怎么就能year和period连接到一块,还能保证是一家的呢)。

    select BD_CORP.UNITCODE,
           bd_corp.unitname,
           max(gl_voucher.year ||'-'|| gl_voucher.period)最新日期,
           count(*) num1
      from gl_voucher, bd_corp
     where bd_corp.pk_corp = gl_voucher.pk_corp
       and gl_voucher.dr = '0'
     group by BD_CORP.UNITCODE, bd_corp.unitname
     order by BD_CORP.UNITCODE
     结果出来了,发现最新日期都是正确的,可是每月凭证数目前有问题(count(*))

    继续研究这个凭证数量

  • 相关阅读:
    GetTickCount 和getTickCount
    载入其他同名源文件导致vs编译错误
    opencv的配置
    VS05错误:部署WEB文件失败
    c++移动文件夹
    opencv2.4.0版本不支持Mat的大小自动调整?
    关于c++中public & private方法调用问题
    c++读取文件夹及子文件夹数据
    深入理解java虚拟机-第四章
    深入理解java虚拟机-第三章
  • 原文地址:https://www.cnblogs.com/sumsen/p/2524755.html
Copyright © 2020-2023  润新知