SELECT
rdo.pk_invbasdoc,
--+ groupStr
max(inv.invname) as invname,--max(wh.storname) as whname,
SUM (nvl(ntermbeginnum1,0.0)) beginnum,
SUM (nvl(nterminnum1,0.0)) innum1,
SUM (nvl(nterminnum2,0.0)) innum2,
SUM (nvl(ntermoutnum1,0.0)) outnum1,
SUM (nvl(ntermoutnum2,0.0)) outnum2,
SUM (nvl(ntermbeginnum1,0.0) + nvl(nterminnum1,0.0) + nvl(nterminnum2,0.0)- nvl(ntermoutnum1,0.0)- nvl(ntermoutnum2,0.0)) ntermonhandnum
FROM
(
SELECT pk_invbasdoc,pk_stordoc,
SUM (nvl(ninnum,0.0)-nvl(noutnum,0.0)) ntermbeginnum1 ,
0.0 nterminnum1 ,
0.0 nterminnum2 ,
0.0 ntermoutnum1 ,
0.0 ntermoutnum2
from view_imdetail
where 1=1
and view_imdetail.corp_id='DE031420-49A8-11DD-A6A6-83873E2C5FE2'
and view_imdetail.billdate < '2005-01-01'
and view_imdetail.pk_stordoc='1001AA10000000000JWD'
group by pk_invbasdoc,pk_stordoc
UNION ALL (
SELECT pk_invbasdoc,pk_stordoc,
0.0 ntermbeginnum1 ,
SUM (ninnum) nterminnum1 ,
0.0 nterminnum2 ,
0.0 ntermoutnum1 ,
0.0 ntermoutnum2
from view_imdetail
where (nvl(ninnum,0.0)>0)
and view_imdetail.corp_id='DE031420-49A8-11DD-A6A6-83873E2C5FE2'
and view_imdetail.billdate >= '2005-01-01'
and view_imdetail.billdate <= '2008-01-01'
and view_imdetail.pk_stordoc='1001AA10000000000JWD'
group by pk_invbasdoc,pk_stordoc
HAVING (SUM(ninnum) IS NOT NULL))
UNION ALL (
SELECT pk_invbasdoc,pk_stordoc,
0.0 ntermbeginnum1 ,
0.0 nterminnum1 ,
SUM (ninnum) nterminnum2 ,
0.0 ntermoutnum1 ,
0.0 ntermoutnum2
from view_imdetail
where (nvl(ninnum,0.0)<0)
and view_imdetail.corp_id='DE031420-49A8-11DD-A6A6-83873E2C5FE2'
and view_imdetail.billdate >= '2005-01-01'
and view_imdetail.billdate <= '2008-01-01'
and view_imdetail.pk_stordoc='1001AA10000000000JWD'
group by pk_invbasdoc,pk_stordoc
HAVING (SUM(ninnum) IS NOT NULL))
UNION ALL (
SELECT pk_invbasdoc,pk_stordoc,
0.0 ntermbeginnum1 ,
0.0 nterminnum1 ,
0.0 nterminnum2 ,
SUM (noutnum) ntermoutnum1 ,
0.0 ntermoutnum2
from view_imdetail
where nvl(noutnum,0.0)>0
and view_imdetail.corp_id='DE031420-49A8-11DD-A6A6-83873E2C5FE2'
and view_imdetail.billdate >= '2005-01-01'
and view_imdetail.billdate <= '2008-01-01'
and view_imdetail.pk_stordoc='1001AA10000000000JWD'
group by pk_invbasdoc,pk_stordoc
HAVING (SUM(noutnum) IS NOT NULL))
UNION ALL (
SELECT pk_invbasdoc,pk_stordoc,
0.0 ntermbeginnum1 ,
0.0 nterminnum1 ,
0.0 nterminnum2 ,
0.0 ntermoutnum1 ,
SUM (noutnum) ntermoutnum2
from view_imdetail
where (nvl(noutnum,0.0)<0)
and view_imdetail.corp_id='DE031420-49A8-11DD-A6A6-83873E2C5FE2'
and view_imdetail.billdate >= '2005-01-01'
and view_imdetail.billdate <= '2008-01-01'
and view_imdetail.pk_stordoc='1001AA10000000000JWD'
group by pk_invbasdoc,pk_stordoc
HAVING (SUM(noutnum) IS NOT NULL))
) rdo
join bd_invbasdoc inv on (inv.pk_invbasdoc=rdo.pk_invbasdoc
)
join bd_invcl invcl on ( inv.pk_invcl = invcl.pk_invcl )
join bd_stordoc wh on (wh.pk_stordoc=rdo.pk_stordoc
)
GROUP BY
rdo.pk_invbasdoc,
--+ groupStr
invcl.invclasscode, inv.invcode, inv.invname
order by invcl.invclasscode, inv.invname
rdo.pk_invbasdoc,
--+ groupStr
max(inv.invname) as invname,--max(wh.storname) as whname,
SUM (nvl(ntermbeginnum1,0.0)) beginnum,
SUM (nvl(nterminnum1,0.0)) innum1,
SUM (nvl(nterminnum2,0.0)) innum2,
SUM (nvl(ntermoutnum1,0.0)) outnum1,
SUM (nvl(ntermoutnum2,0.0)) outnum2,
SUM (nvl(ntermbeginnum1,0.0) + nvl(nterminnum1,0.0) + nvl(nterminnum2,0.0)- nvl(ntermoutnum1,0.0)- nvl(ntermoutnum2,0.0)) ntermonhandnum
FROM
(
SELECT pk_invbasdoc,pk_stordoc,
SUM (nvl(ninnum,0.0)-nvl(noutnum,0.0)) ntermbeginnum1 ,
0.0 nterminnum1 ,
0.0 nterminnum2 ,
0.0 ntermoutnum1 ,
0.0 ntermoutnum2
from view_imdetail
where 1=1
and view_imdetail.corp_id='DE031420-49A8-11DD-A6A6-83873E2C5FE2'
and view_imdetail.billdate < '2005-01-01'
and view_imdetail.pk_stordoc='1001AA10000000000JWD'
group by pk_invbasdoc,pk_stordoc
UNION ALL (
SELECT pk_invbasdoc,pk_stordoc,
0.0 ntermbeginnum1 ,
SUM (ninnum) nterminnum1 ,
0.0 nterminnum2 ,
0.0 ntermoutnum1 ,
0.0 ntermoutnum2
from view_imdetail
where (nvl(ninnum,0.0)>0)
and view_imdetail.corp_id='DE031420-49A8-11DD-A6A6-83873E2C5FE2'
and view_imdetail.billdate >= '2005-01-01'
and view_imdetail.billdate <= '2008-01-01'
and view_imdetail.pk_stordoc='1001AA10000000000JWD'
group by pk_invbasdoc,pk_stordoc
HAVING (SUM(ninnum) IS NOT NULL))
UNION ALL (
SELECT pk_invbasdoc,pk_stordoc,
0.0 ntermbeginnum1 ,
0.0 nterminnum1 ,
SUM (ninnum) nterminnum2 ,
0.0 ntermoutnum1 ,
0.0 ntermoutnum2
from view_imdetail
where (nvl(ninnum,0.0)<0)
and view_imdetail.corp_id='DE031420-49A8-11DD-A6A6-83873E2C5FE2'
and view_imdetail.billdate >= '2005-01-01'
and view_imdetail.billdate <= '2008-01-01'
and view_imdetail.pk_stordoc='1001AA10000000000JWD'
group by pk_invbasdoc,pk_stordoc
HAVING (SUM(ninnum) IS NOT NULL))
UNION ALL (
SELECT pk_invbasdoc,pk_stordoc,
0.0 ntermbeginnum1 ,
0.0 nterminnum1 ,
0.0 nterminnum2 ,
SUM (noutnum) ntermoutnum1 ,
0.0 ntermoutnum2
from view_imdetail
where nvl(noutnum,0.0)>0
and view_imdetail.corp_id='DE031420-49A8-11DD-A6A6-83873E2C5FE2'
and view_imdetail.billdate >= '2005-01-01'
and view_imdetail.billdate <= '2008-01-01'
and view_imdetail.pk_stordoc='1001AA10000000000JWD'
group by pk_invbasdoc,pk_stordoc
HAVING (SUM(noutnum) IS NOT NULL))
UNION ALL (
SELECT pk_invbasdoc,pk_stordoc,
0.0 ntermbeginnum1 ,
0.0 nterminnum1 ,
0.0 nterminnum2 ,
0.0 ntermoutnum1 ,
SUM (noutnum) ntermoutnum2
from view_imdetail
where (nvl(noutnum,0.0)<0)
and view_imdetail.corp_id='DE031420-49A8-11DD-A6A6-83873E2C5FE2'
and view_imdetail.billdate >= '2005-01-01'
and view_imdetail.billdate <= '2008-01-01'
and view_imdetail.pk_stordoc='1001AA10000000000JWD'
group by pk_invbasdoc,pk_stordoc
HAVING (SUM(noutnum) IS NOT NULL))
) rdo
join bd_invbasdoc inv on (inv.pk_invbasdoc=rdo.pk_invbasdoc
)
join bd_invcl invcl on ( inv.pk_invcl = invcl.pk_invcl )
join bd_stordoc wh on (wh.pk_stordoc=rdo.pk_stordoc
)
GROUP BY
rdo.pk_invbasdoc,
--+ groupStr
invcl.invclasscode, inv.invcode, inv.invname
order by invcl.invclasscode, inv.invname
SELECT
rdo.pk_invbasdoc,
inv.invname,
SUM (nvl(ntermbeginnum1,0.0)) beginnum,
SUM (nvl(nterminnum1,0.0)) innum1,
SUM (nvl(nterminnum2,0.0)) innum2,
SUM (nvl(ntermoutnum1,0.0)) outnum1,
SUM (nvl(ntermoutnum2,0.0)) outnum2,
SUM (nvl(ntermbeginnum1,0.0)
+ nvl(nterminnum1,0.0)
+ nvl(nterminnum2,0.0)
- nvl(ntermoutnum1,0.0)
- nvl(ntermoutnum2,0.0)) ntermonhandnum
FROM
(
SELECT pk_invbasdoc,
pk_stordoc,
SUM (CASE WHEN billdate<'2005-01-01' THEN nvl(ninnum,0.0)-nvl(noutnum,0.0) END) ntermbeginnum1,
SUM (CASE WHEN billdate>='2005-01-01'
AND billdate<='2008-01-01'
AND ninnum>0 THEN ninnum END) nterminnum1,
SUM (CASE WHEN billdate>='2005-01-01'
AND billdate<='2008-01-01'
AND ninnum<0 THEN ninnum END) nterminnum2,
SUM (CASE WHEN billdate>='2005-01-01'
AND billdate<='2008-01-01'
AND noutnum>0 THEN noutnum END) ntermoutnum1,
SUM (CASE WHEN billdate>='2005-01-01'
AND billdate<='2008-01-01'
AND noutnum<0 THEN noutnum END) ntermoutnum2
FROM view_imdetail
WHERE corp_id='DE031420-49A8-11DD-A6A6-83873E2C5FE2'
AND pk_stordoc='1001AA10000000000JWD'
GROUP BY pk_invbasdoc,pk_stordoc
) rdo
JOIN bd_invbasdoc inv ON inv.pk_invbasdoc=rdo.pk_invbasdoc
JOIN bd_invcl invcl ON inv.pk_invcl = invcl.pk_invcl
JOIN bd_stordoc wh ON wh.pk_stordoc=rdo.pk_stordoc
GROUP BY invcl.invclasscode,inv.invcode,inv.invname,rdo.pk_invbasdoc
ORDER BY invcl.invclasscode,inv.invname