UDN-企业互联网技术人气社区

板块导航

浏览  : 2129
回复  : 1

[分析云] 谁有收发存统计的sql,跟代码跟不下去了

[复制链接]
张正和_yTqlV的头像 楼主
发表于 2017-1-18 12:51:27 | 显示全部楼层 |阅读模式
谁有收发存统计的sql,跟代码跟不下去了

相关帖子

发表于 2018-12-21 16:40:34 | 显示全部楼层
这个是根据汇总纬度不同,sql不同
--本期 收入和发出  合并
SELECT rdosum.pk_corp,
       cwarehouseid,
       cinventoryid,
       nterminnum,
       nterminastnum,
       ntermingrossnum,
       ntermoutnum,
       ntermoutastnum,
       ntermoutgrossnum
  FROM (SELECT pk_corp,
               cwarehouseid,
               cinventoryid,
               SUM(COALESCE(nterminnum1, 0.0)) AS nterminnum,
               SUM(COALESCE(nterminastnum1, 0.0)) AS nterminastnum,
               SUM(COALESCE(ntermoutnum1, 0.0)) AS ntermoutnum,
               SUM(COALESCE(ntermoutastnum1, 0.0)) AS ntermoutastnum,
               SUM(ntermingrossnum1) ntermingrossnum,
               SUM(ntermoutgrossnum1) ntermoutgrossnum
          FROM ((SELECT kp.pk_corp,
                        kp.cwarehouseid,
                        kp.cinventoryid,
                        SUM(ninnum) AS nterminnum1,
                        SUM(ninassistnum) AS nterminastnum1,
                        0.0 AS ntermoutnum1,
                        0.0 AS ntermoutastnum1,
                        nvl(sum(ningrossnum), 0.0) ntermingrossnum1,
                        0.0 ntermoutgrossnum1
                   FROM ic_keep_detail4 kp
                  WHERE (1 = 1)
                    AND kp.dbizdate >= '2018-11-26'
                    AND kp.dbizdate <= '2018-12-25'
                    AND (cbilltypecode in
                        (select cbilltypecode
                            from ic_billtype
                           where bmonthflag = 'Y'
                             and ctransactiontype <> 'INITIAL'))
                    and kp.pk_corp in ('1001')
                    AND (1 = 1)
                    and (1 = 1)
                    and (1 = 1)
                    and (cwarehouseid = '1001AA10000000000QE1')
                    and (1 = 1)
                  GROUP BY kp.pk_corp, kp.cwarehouseid, kp.cinventoryid
                 HAVING(SUM(ninnum) IS NOT NULL)) UNION ALL
                (SELECT kp.pk_corp,
                        kp.cwarehouseid,
                        kp.cinventoryid,
                        0.0 AS nterminnum1,
                        0.0 AS nterminastnum1,
                        SUM(noutnum) AS ntermoutnum1,
                        SUM(noutassistnum) AS ntermoutastnum1,
                        0.0 ntermingrossnum1,
                        nvl(sum(noutgrossnum), 0.0) ntermoutgrossnum1
                   FROM ic_keep_detail4 kp
                  WHERE (1 = 1)
                    AND kp.dbizdate >= '2018-11-26'
                    AND kp.dbizdate <= '2018-12-25'
                    AND (cbilltypecode in
                        (select cbilltypecode
                            from ic_billtype
                           where bmonthflag = 'Y'
                             and ctransactiontype <> 'INITIAL'))
                    and kp.pk_corp in ('1001')
                    AND (1 = 1)
                    and (1 = 1)
                    and (1 = 1)
                    and (cwarehouseid = '1001AA10000000000QE1')
                    and (1 = 1)
                  GROUP BY kp.pk_corp, kp.cwarehouseid, kp.cinventoryid
                 HAVING(SUM(noutnum) IS NOT NULL))) rdo
         GROUP BY pk_corp, cwarehouseid, cinventoryid) rdosum
ORDER BY cwarehouseid, cinventoryid

--期初 合并
SELECT pk_corp,
       cwarehouseid,
       cinventoryid,
       sum(nonhandnum) nonhandnum,
       sum(nonhandassistnum) nonhandassistnum,
       sum(ngrossnum) ngrossnum
  FROM ((SELECT hand.pk_corp,
                hand.cwarehouseid,
                hand.cinventoryid,
                nvl(sum(nonhandnum), 0.0) nonhandnum,
                nvl(sum(nonhandassistnum), 0.0) nonhandassistnum,
                nvl(sum(ngrossnum), 0.0) ngrossnum
           FROM ic_month_hand hand
          WHERE dyearmonth = '2016-12'
            and (1 = 1)
            and (1 = 1)
            and (1 = 1)
            and (hand.cwarehouseid = '1001AA10000000000QE1')
            and (1 = 1)
            and (hand.pk_corp in ('1001'))
          GROUP BY hand.pk_corp, hand.cwarehouseid, hand.cinventoryid) UNION ALL
        (SELECT rec.pk_corp,
                rec.cwarehouseid,
                rec.cinventoryid,
                sum(nvl(ninnum, 0.0) - nvl(noutnum, 0.0)) nonhandnum,
                sum(nvl(ninassistnum, 0.0) - nvl(noutassistnum, 0.0)) nonhandassistnum,
                sum(nvl(ningrossnum, 0.0) - nvl(noutgrossnum, 0.0)) ngrossnum
           FROM ic_month_record rec
          WHERE dyearmonth >= '2017-01'
            and dyearmonth <= '2017-01'
            and (1 = 1)
            and (1 = 1)
            and (1 = 1)
            and (rec.cwarehouseid = '1001AA10000000000QE1')
            and (1 = 1)
            and (rec.pk_corp in ('1001'))
            and ((rec.cbilltypecode in ('40',
                                        '41',
                                        '44',
                                        '4401',
                                        '45',
                                        '46',
                                        '47',
                                        '48',
                                        '49',
                                        '4A',
                                        '4B',
                                        '4E')) AND ninnum IS NOT NULL OR
                (rec.cbilltypecode in ('4451',
                                        '4C',
                                        '4D',
                                        '4F',
                                        '4G',
                                        '4H',
                                        '4I',
                                        '4J',
                                        '4O',
                                        '4Y')) AND noutnum IS NOT NULL)
          GROUP BY rec.pk_corp, rec.cwarehouseid, rec.cinventoryid) UNION ALL
        (SELECT b.pk_corp,
                h.cwarehouseid,
                b.cinventoryid,
                sum(nvl(ninnum, 0.0) - nvl(noutnum, 0.0)) nonhandnum,
                sum(nvl(ninassistnum, 0.0) - nvl(noutassistnum, 0.0)) nonhandassistnum,
                sum(nvl(ningrossnum, 0.0) - nvl(noutgrossnum, 0.0)) ngrossnum
           FROM ic_general_h h
          inner join ic_general_b b
             on h.cgeneralhid = b.cgeneralhid
          WHERE dbizdate > '2017-01-31'
            and dbizdate < '2018-11-26'
            and (1 = 1)
            and (1 = 1)
            and (1 = 1)
            and (h.cwarehouseid = '1001AA10000000000QE1')
            and (1 = 1)
            and (b.pk_corp in ('1001'))
            and (h.pk_corp in ('1001'))
            and (((h.cbilltypecode in ('45') AND b.fchecked = 0 AND
                (h.cbiztype IN
                (SELECT pk_busitype
                       FROM bd_busitype
                      WHERE verifyrule <> 'J') OR h.cbiztype IS NULL)) OR
                h.cbilltypecode in ('40',
                                      '41',
                                      '44',
                                      '4401',
                                      '46',
                                      '47',
                                      '48',
                                      '49',
                                      '4A',
                                      '4B',
                                      '4E')) AND ninnum IS NOT NULL OR
                ((h.cbilltypecode in ('4C') AND
                (h.cbiztype IN
                (SELECT pk_busitype
                       FROM bd_busitype
                      WHERE verifyrule <> 'C') OR h.cbiztype IS NULL)) OR
                h.cbilltypecode in
                ('4451', '4D', '4F', '4G', '4H', '4I', '4J', '4O', '4Y')) AND
                noutnum IS NOT NULL)
            and h.cbilltypecode in ('4401',
                                    '4451',
                                    '45',
                                    '46',
                                    '47',
                                    '48',
                                    '49',
                                    '4A',
                                    '4B',
                                    '4C',
                                    '4D',
                                    '4E',
                                    '4F',
                                    '4G',
                                    '4H',
                                    '4I',
                                    '4J',
                                    '4O',
                                    '4P',
                                    '4Q',
                                    '4X',
                                    '4Y')
            and h.dr = 0
            and b.dr = 0
            and h.pk_corp = b.pk_corp
          GROUP BY b.pk_corp, h.cwarehouseid, b.cinventoryid)) qichu
GROUP BY pk_corp, cwarehouseid, cinventoryid
使用道具 举报

回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们
联系我们
  • 电话:010-86393388
  • 邮件:udn@yonyou.com
  • 地址:北京市海淀区北清路68号
移动客户端下载
关注我们
  • 微信公众号:yonyouudn
  • 扫描右侧二维码关注我们
  • 专注企业互联网的技术社区
版权所有:用友网络科技股份有限公司82041 京ICP备05007539号-11 京公网网备安1101080209224 Powered by Discuz!
快速回复 返回列表 返回顶部