Dear Experts,
Please find the below query for Opening and Closing Stock of RM, where in I have been trying to arrest the Inventory Transfer quantity & Value in IN QTY & OUT QTY. I used Transtype<> 67 to arrest but the same is not working out for me...
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Declare @FromDate Datetime
Declare @ToDate Datetime
Declare
@ItmsGrpNam varchar(100)
select @FromDate =min(S0.Docdate)from dbo.OINM S0 where S0.Docdate >='[%0]'
select @ToDate =max(S1.Docdate)from dbo.OINM s1 where S1.Docdate <='[%1]'
select
@ItmsGrpNam =max(s2.ItmsGrpNam)from dbo.OITB S2 Where S2.ItmsGrpNam ='[%2]'
Select a.Itemcode,max(a.Dscription)as ItemName,
(Select i.InvntryUom from OITM
i where i.ItemCode=a.Itemcode)as UOM,
sum(a.OpeningBalance)as OpeningBalance,
sum(a.OpeningValue)as OpeningValue,
sum(a.INq)as'IN',
(selectSUM(ISNULL(T100.TRANSVALUE,0))from oinm T100 WHERE T100.ITEMCODE = A.ITEMCODE
AND T100.DOCDATE >=
@FROMDATE
AND T100.DOCDATE <=
@TODATE AND T100.INQTY
<> 0)AS [IN Stock Value],
sum(a.OUT)asOUT,
(selectSUM(ISNULL(T100.TRANSVALUE,0))from oinm T100 WHERE T100.ITEMCODE = A.ITEMCODE
AND T100.DOCDATE >=
@FROMDATE
AND T100.DOCDATE <=
@TODATE AND T100.OUTQTY
<> 0)*-1 AS [OUT Stock Value],
((sum(a.OpeningBalance)+sum(a.INq))-Sum(a.OUT))as Closing ,
(selectSUM(T100.TRANSVALUE)from oinm T100 WHERE
T100.ITEMCODE
= A.ITEMCODE AND T100.DOCDATE < @TODATE)AS [Closing Value Transaction],
(Select i.LastPurDat from OITM
i where i.ItemCode=a.Itemcode)as'Last Purchase Date',
(Select b.ItmsGrpNam from OITB
b where
b.ItmsGrpCod =
I1.ItmsGrpCod)as'Group Name'
from(Select N1.Itemcode, N1.Dscription,(sum(N1.inqty)-sum(n1.outqty))
as
OpeningBalance,
(sum(N1.Transvalue))
as
OpeningValue,
0 as
INq, 0 asOUTFrom dbo.OINM N1 innerjoin OITM i on i.ItemCode = N1.ItemCode
innerjoin OITB b on b.ItmsGrpCod = i.ItmsGrpCod
Where N1.DocDate <@FromDate
and b.ItmsGrpNam
= @ItmsGrpNam
GroupBy N1.ItemCode,N1.Dscription
UnionAll
select N1.Itemcode, N1.Dscription, 0 as OpeningBalance,0 as OpeningValue,
sum(N1.inqty), 0 asOUTFrom dbo.OINM N1 innerjoin OITM i on i.ItemCode = N1.ItemCode
innerjoin OITB b on b.ItmsGrpCod = i.ItmsGrpCod
Where N1.DocDate >=
@FromDate and N1.DocDate
<= @ToDate
and N1.Inqty >0 and b.ItmsGrpNam =
@ItmsGrpNam
GroupBy N1.ItemCode,N1.Dscription
UnionAll
select N1.Itemcode, N1.Dscription, 0 as OpeningBalance,0 as OpeningValue, 0 ,sum(N1.outqty)asOUT
From dbo.OINM N1 innerjoin OITM i on i.ItemCode = N1.ItemCode
innerjoin OITB b on b.ItmsGrpCod = i.ItmsGrpCod
Where N1.DocDate >=
@FromDate
and N1.DocDate <=@ToDate
and N1.OutQty > 0 and b.ItmsGrpNam = @ItmsGrpNam
and N1.Transtype ='67'
GroupBy N1.ItemCode,N1.Dscription) a, dbo.OITM I1 ,OITB b1
where a.ItemCode=I1.ItemCode
and I1.ItmsGrpCod = b1.ItmsGrpCod
GroupBy a.Itemcode ,I1.ItmsGrpCod , b1.ItmsGrpNam
Havingsum(a.OpeningBalance)+sum(a.INq)+sum(a.OUT)> 0
OrderBy a.Itemcode
---------------------------------------------------------------------------------------------
Thanks,
Bhoopathi.K