Hi Akhil T Prasad
Try This
/* SELECT t1.taxdate, t3.cardname FROM jdt1 t1
left outer join OCRD t3 on t3.CardCode=T1.ContraAct */
DECLARE @d1 AS DATETIME
DECLARE @d2 AS DATETIME
DECLARE @d3 AS NVARCHAR(100)
SET @d1 =/* t1.taxdate */ '[%0]'
SET @d2 =/* t1.taxdate */ '[%1]'
SET @d3 =/* t3.cardname */ '[%2]'
DECLARE @PrCl dec(19 ,6)
DECLARE @debit dec(19 ,6)
DECLARE @credit dec(19 ,6)
DECLARE @account CHAR(20)
DECLARE @Pracc CHAR(20)
CREATE TABLE #TempTab
(
Account CHAR(200)
,NAME CHAR(100)
,Date DATETIME
,Opening dec(19 ,6)
,Debit dec(19 ,6)
,Credit dec(19 ,6)
,Closing dec(19 ,6)
)
INSERT INTO #TempTab
(
Account
,NAME
,Date
,Opening
,Debit
,Credit
,Closing
)
SELECT T3.Cardcode
,t3.cardname
,T1.[RefDate] Mo
,0
,SUM(T1.[Debit])De
,SUM(T1.[Credit])Cr
,0
FROM OJDT T0
INNER JOIN JDT1 T1
ON T0.TransId = T1.TransId
left outer join OCRD t3 on t3.CardCode=T1.ContraAct
GROUP BY
T3.Cardcode
,T1.[RefDate]
,t3.cardname
ORDER BY
T3.Cardcode
,T1.[RefDate]
DECLARE cu CURSOR
FOR
SELECT Account
,Debit
,Credit
FROM #TempTab
FOR
UPDATE
SET @PrAcc = ''
OPEN cu
FETCH NEXT FROM cu INTO @Account,@Debit,@Credit
WHILE @@FETCH_STATUS=0
BEGIN
IF @account!=@PrAcc
SET @PrCl = 0
UPDATE #TempTab
SET opening = @PrCl
,closing = @PrCl-@Credit+@Debit
WHERE CURRENT OF cu
SET @PrCl = @PrCl-@Credit+@Debit
SET @PrAcc = @Account
FETCH NEXT FROM cu INTO @Account,@debit,@credit
END
DEALLOCATE cu
SELECT c.Account AS Accountcode
,c.NAME AS AcctName
,c.Date AS [Date]
,c.Opening AS Opening
,c.Debit AS Debit
,c.Credit AS Credit
,c.Closing AS Closing
FROM #TempTab c
WHERE (date BETWEEN @d1 AND @d2)
AND NAME LIKE @d3
DROP TABLE #TempTab
Hope Helpful
Regards
Kennedy