SELECT RTOUT_2.TypeID AS OUTTYPEID,
RTOUT_2.GPType AS OUTGPTYPE,
RTOUT_2.DocNo AS OUTDOCNO,
RTOUT_2.ItemID AS OUTITEM,
RTOUT_2.Descp AS OUTDESCP,
RTOUT_2.Unit AS OUTUNIT,
RTOUT_2.Qty AS OUTQTY,
RTIN_2.TypeID AS INTYPEID,
dbo.fn_CombineGP(RTOUT_2.DocNo, RTOUT_2.TypeID) AS INDOCNO,
RTIN_2.ItemID AS INITEM,
RTIN_2.Descp AS INDESCP,
RTIN_2.Unit AS INUNIT,
ISNULL(RTIN_2.QTY, 0) AS INQTY,
ISNULL(RTOUT_2.Qty, 0) - ISNULL(RTIN_2.QTY, 0) AS BALQTY
FROM (SELECT H.TypeID,
H.GPType,
H.DocNo,
H.GPDocNo,
D.ItemID,
I.Descp,
D.Unit,
D.Qty
FROM dbo.ICNSGPH AS H INNER JOIN
dbo.ICSGPD AS D ON H.TypeID = D.TypeID AND H.DocNo = D.DocNo INN
ER JOIN
dbo.ICITEM AS I ON I.ItemID = D.ItemID
WHERE (H.TypeID = 1) AND (H.GPType = 1) AND (H.StockGP = 1) AN
D (H.IsCanceled = 0)
) AS RTOUT_2 LEFT OUTER JOIN
(SELECT H.TypeID,
H.GPDocNo,
D.ItemID,
I.Descp,
D.Unit,
SUM(D.Qty) AS QTY
FROM dbo.ICNSGPH AS H INNER JOIN
dbo.ICNSGPD AS D ON H.TypeID = D.TypeID AND H.DocNo = D.DocNo IN
NER JOIN
dbo.ICITEM AS I ON I.ItemID = D.ItemID
WHERE (H.TypeID = 0) AND (H.GPDocNo <> 0) AND (H.StockGP =
1) AND (H.IsCanceled = 0)
GROUP BY H.TypeID, H.GPDocNo, D.ItemID, I.Descp, D.Unit
) AS RTIN_2 ON RTOUT_2.DocNo = RTIN_2.GPDocNo AND RTOUT_2.ItemID
= RTIN_2.ItemID AND RTOUT_2.Unit = RTIN_2.Unit
UNION ALL
SELECT RTOUT_1.TypeID AS OUTTYPEID,
RTOUT_1.GPType AS OUTGPTYPE,
RTOUT_1.DocNo AS OUTDOCNO,
RTOUT_1.ItemID AS OUTITEM,
RTOUT_1.Descp AS OUTDESCP,
RTOUT_1.Unit AS OUTUNIT,
RTOUT_1.Qty AS OUTQTY,
RTIN_1.TypeID AS INTYPEID,
dbo.fn_CombineGP(RTOUT_1.DocNo, RTOUT_1.TypeID) AS INDOCNO,
RTIN_1.ItemID AS INITEM,
RTIN_1.Descp AS INDESCP,
RTIN_1.Unit AS INUNIT,
ISNULL(RTIN_1.QTY, 0) AS INQTY,
ISNULL(RTOUT_1.Qty, 0) - ISNULL(RTIN_1.QTY, 0) AS BALQTY
FROM (SELECT H.TypeID,
H.GPType,
H.DocNo,
H.GPDocNo,
D.ItemID,
I.Descp,
D.Unit,
D.Qty
FROM dbo.ICNSGPH AS H INNER JOIN
dbo.ICSGPD AS D ON H.TypeID = D.TypeID AND H.DocNo = D.DocNo INN
ER JOIN
dbo.ICITEM AS I ON I.ItemID = D.ItemID
WHERE (H.TypeID = 0) AND (H.GPType = 1) AND (H.StockGP = 1) AN
D (H.IsCanceled = 0)
) AS RTOUT_1 LEFT OUTER JOIN
(SELECT H.TypeID,
H.GPDocNo,
D.ItemID,
I.Descp,
D.Unit,
SUM(D.Qty) AS QTY
FROM dbo.ICNSGPH AS H INNER JOIN
dbo.ICNSGPD AS D ON H.TypeID = D.TypeID AND H.DocNo = D.DocNo IN
NER JOIN
dbo.ICITEM AS I ON I.ItemID = D.ItemID
WHERE (H.TypeID = 1) AND (H.GPDocNo <> 0) AND (H.StockGP = 1)
AND (H.IsCanceled = 0)
GROUP BY H.TypeID, H.GPDocNo, D.ItemID, I.Descp, D.Unit
) AS RTIN_1 ON RTOUT_1.DocNo = RTIN_1.GPDocNo AND RTOUT_1.ItemID
= RTIN_1.ItemID AND RTOUT_1.Unit = RTIN_1.Unit
----------------------------------------------
SELECT RTOUT_2.TypeID AS OUTTYPEID,
RTOUT_2.GPType AS OUTGPTYPE,
RTOUT_2.DocNo AS OUTDOCNO,
RTOUT_2.ItemID AS OUTITEM,
RTOUT_2.Descp AS OUTDESCP,
RTOUT_2.Unit AS OUTUNIT,
RTOUT_2.Qty AS OUTQTY,
RTIN_2.TypeID AS INTYPEID,
dbo.fn_CombineGP(RTOUT_2.DocNo, RTOUT_2.TypeID) AS INDOCNO,
RTIN_2.ItemID AS INITEM,
RTIN_2.Descp AS INDESCP,
RTIN_2.Unit AS INUNIT,
ISNULL(RTIN_2.QTY, 0) AS INQTY,
ISNULL(RTOUT_2.Qty, 0) - ISNULL(RTIN_2.QTY, 0) AS BALQTY
FROM (SELECT H.TypeID,
H.GPType,
H.DocNo,
H.GPDocNo,
D.ItemID,
I.Descp,
D.Unit,
D.Qty
FROM dbo.ICNSGPH AS H INNER JOIN
dbo.ICSGPD AS D ON H.TypeID = D.TypeID AND H.DocNo = D.DocNo INN
ER JOIN
dbo.ICITEM AS I ON I.ItemID = D.ItemID
WHERE (H.TypeID = 1) AND (H.GPType = 1) AND (H.StockGP = 1) AN
D (H.IsCanceled = 0)
) AS RTOUT_2 LEFT OUTER JOIN
(SELECT H.TypeID,
H.GPDocNo,
D.ItemID,
I.Descp,
D.Unit,
SUM(D.Qty) AS QTY
FROM dbo.ICNSGPH AS H INNER JOIN
dbo.ICNSGPD AS D ON H.TypeID = D.TypeID AND H.DocNo = D.DocNo IN
NER JOIN
dbo.ICITEM AS I ON I.ItemID = D.ItemID
WHERE (H.TypeID = 0) AND (H.GPDocNo <> 0) AND (H.StockGP =
1) AND (H.IsCanceled = 0)
GROUP BY H.TypeID, H.GPDocNo, D.ItemID, I.Descp, D.Unit
) AS RTIN_2 ON RTOUT_2.DocNo = RTIN_2.GPDocNo AND RTOUT_2.ItemID
= RTIN_2.ItemID AND RTOUT_2.Unit = RTIN_2.Unit
UNION ALL
SELECT RTOUT_1.TypeID AS OUTTYPEID,
RTOUT_1.GPType AS OUTGPTYPE,
RTOUT_1.DocNo AS OUTDOCNO,
RTOUT_1.ItemID AS OUTITEM,
RTOUT_1.Descp AS OUTDESCP,
RTOUT_1.Unit AS OUTUNIT,
RTOUT_1.Qty AS OUTQTY,
RTIN_1.TypeID AS INTYPEID,
dbo.fn_CombineGP(RTOUT_1.DocNo, RTOUT_1.TypeID) AS INDOCNO,
RTIN_1.ItemID AS INITEM,
RTIN_1.Descp AS INDESCP,
RTIN_1.Unit AS INUNIT,
ISNULL(RTIN_1.QTY, 0) AS INQTY,
ISNULL(RTOUT_1.Qty, 0) - ISNULL(RTIN_1.QTY, 0) AS BALQTY
FROM (SELECT H.TypeID,
H.GPType,
H.DocNo,
H.GPDocNo,
D.ItemID,
I.Descp,
D.Unit,
D.Qty
FROM dbo.ICNSGPH AS H INNER JOIN
dbo.ICSGPD AS D ON H.TypeID = D.TypeID AND H.DocNo = D.DocNo INN
ER JOIN
dbo.ICITEM AS I ON I.ItemID = D.ItemID
WHERE (H.TypeID = 0) AND (H.GPType = 1) AND (H.StockGP = 1) AN
D (H.IsCanceled = 0)
) AS RTOUT_1 LEFT OUTER JOIN
(SELECT H.TypeID,
H.GPDocNo,
D.ItemID,
I.Descp,
D.Unit,
SUM(D.Qty) AS QTY
FROM dbo.ICNSGPH AS H INNER JOIN
dbo.ICNSGPD AS D ON H.TypeID = D.TypeID AND H.DocNo = D.DocNo IN
NER JOIN
dbo.ICITEM AS I ON I.ItemID = D.ItemID
WHERE (H.TypeID = 1) AND (H.GPDocNo <> 0) AND (H.StockGP = 1)
AND (H.IsCanceled = 0)
GROUP BY H.TypeID, H.GPDocNo, D.ItemID, I.Descp, D.Unit
) AS RTIN_1 ON RTOUT_1.DocNo = RTIN_1.GPDocNo AND RTOUT_1.ItemID
= RTIN_1.ItemID AND RTOUT_1.Unit = RTIN_1.Unit
-------------------------------------
set ANSI_NULLS OFF
set QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[GPDetail]
@FromDate char(8) = '20110101',
@ToDate char(8) = '20110828',
@TypeID int = 0
AS
SET NOCOUNT ON ;
SELECT GP.*,D.*,RT.INTYPEID,RT.INDOCNO,RT.INQTY,RT.BALQTY
FROM vICNSGPH GP INNER JOIN
vICNSGPD D ON D.TYPEID = GP.TYPEID AND D.DOCNO = GP.DOCNO LEFT OUTER JOI
N
RTINOUT RT ON RT.OUTTYPEID = GP.TYPEID AND RT.OUTDOCNO = GP.DOCNO AND RT
.OUTDESCP = D.DESCP AND RT.OUTUNIT = D.UNIT
WHERE GP.DOCDATE BETWEEN @FROMDATE AND @TODATE
AND GP.TYPEID = @TYPEID