神奇的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(*))

继续研究这个凭证数量

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值