————库存对账-含退货—
    select

    isnull(inv.whna,isnull(tro.pfwh,isnull(tri.powh,isnull(pro.whna,rpi.whna)))) as ‘仓库名称’
    ,isnull(inv.whid,isnull(tro.whid,isnull(tri.whid,isnull(pro.whid,rpi.whid)))) as ‘仓库代码’
    ,isnull(inv.ewid,isnull(tro.ewid,isnull(tri.ewid,isnull(pro.ewid,rpi.ewid)))) as ‘识别码’
    ,isnull(inv.code,isnull(tro.code,isnull(tri.code,isnull(pro.code,rpi.code)))) as ‘辅助编码’
    ,isnull(inv.inco,isnull(tro.inco,isnull(tri.inco,isnull(pro.inco,rpi.inco)))) as ‘产品’
    ,isnull(inv.ewid,isnull(tro.ewid,isnull(tri.ewid,isnull(pro.ewid,rpi.ewid))))+isnull(inv.inco,isnull(tro.inco,isnull(tri.inco,isnull(pro.inco,rpi.inco)))) as ‘仓-品组合’
    ,isnull(inv.qty,0) as ‘账面数量’
    ,isnull(tro.outqty,0) as ‘调拨出’
    ,isnull(tri.inqty,0) as ‘调拨入’
    ,isnull(pro.fqty,0) AS ‘采退出’
    ,isnull(rpi.rqty,0) AS ‘销退入’
    ,isnull(inv.qty,0)+isnull(tro.outqty,0)-isnull(tri.inqty,0)+isnull(pro.fqty,0)- isnull(rpi.rqty,0) as ‘理论数量’
    from —库存明细汇总,取库存视图表,来源库存表bain的几个维度汇总
    (
    SELECT x.whna as whna ,x.whid as whid,x.ewid as ewid,x.code as code, a.inco as inco ,sum(a.qty) AS qty
    FROM stquo a

    LEFT JOIN waho b ON a.whid=b.whid
    LEFT JOIN waho x ON a.whco=x.whid and x.whty=1
    WHERE 1=1 and b.orid like ‘0%’ and b.whty in (‘4’,’5’,’6’,’7’,’9’,’13’,’15’,’96’,’98’,’99’)
    group by a.cotl, a.inco,x.whid ,x.whna ,x.ewid,x.code
    )inv
    full join—调出汇总
    (
    SELECT w.whna as pfwh,w.whid as whid,w.ewid as ewid,w.code as code,b.inco as inco,sum(b.oqty) outqty
    FROM ppma a
    LEFT JOIN ppde b on a.biid=b.biid

    LEFT join waho w on w.whid = a.pfwh
    where 1=1 and a.flag in (‘21’,’22’)

    GROUP BY w.whna ,w.whid,b.inco,w.ewid,w.code

    ) tro on inv.whid=tro.whid and inv.inco=tro.inco
    full join—调入汇总
    (
    SELECT h.whna as powh,h.whid as whid,h.ewid as ewid,h.code as code,b.inco as inco,sum(b.iqty) AS inqty
    FROM ppma a
    LEFT JOIN ppde b on a.biid=b.biid

    LEFT join waho h on h.whid = a.powh

    where 1=1 and a.flag in (‘21’,’22’)
    GROUP BY h.whna ,h.whid,b.inco,h.ewid,h.code
    )tri on inv.whid=tri.whid and inv.inco=tri.inco

    FULL JOIN—采退汇总

    (
    SELECT d.whna AS whna,d.whid AS whid,d.ewid AS ewid, d.code AS code,pd.inco,sum(pd.qty) as fqty

    FROM prbm a
    —left join prbd b on a.biid=b.biid
    left join waho d on a.whid = d.whid
    LEFT JOIN prma pr ON a.biid=pr.soco
    LEFT JOIN prde pd ON pr.biid=pd.biid
    WHERE a.orid like ‘0%’ and a.flag in (‘21’)—‘11’正式单据,’21’退货中a.biid like ‘PN2020071500000079’
    AND pr.flag IN (‘11’) —采购退货出库单已审核
    GROUP BY d.whna,d.whid,d.ewid, d.code,pd.inco
    )pro on inv.whid=pro.whid and inv.inco=pro.inco
    FULL JOIN —销退汇总
    (
    select wa.whna AS whna,a.whid AS whid,wa.ewid AS ewid, wa.code AS code,b.inco,sum(b.rqty) as rqty

    FROM rpma a

    left JOIN rpde b ON a.biid=b.biid

    left join waho wa on a.whid = wa.whid
    where a.orid like ‘0%’ and a.flag in (‘21’) AND b.rqty>0
    GROUP BY wa.whna,a.whid,wa.ewid, wa.code,b.inco
    )rpi on inv.whid=rpi.whid and inv.inco=rpi.inco




    WHERE


    isnull(inv.whid,isnull(tro.whid,isnull(tri.whid,isnull(pro.whid,rpi.whid)))) IN(‘U01’)

    AND isnull(inv.inco,isnull(tro.inco,isnull(tri.inco,isnull(pro.inco,rpi.inco)))) IN (‘’)




    order by inv.whid