DECLARE @DateFrom AS DATETIME
DECLARE @DateTo AS DATETIME
SELECT @DateFrom=DocDate FROM OINV T0 WHERE T0.DocDate='[%0]'
SELECT @DateTo=DocDate FROM OINV T1 WHERE T1.DocDate='[%1]'
select tt.CardCode,tt.CardName,sum(Currentyear) as Currentyear,sum(LastYear) as LastYear from (
SELECT CardCode,CardName,SUM(DocTotal) as Currentyear,0 as LastYear
FROM OINV
WHERE DocDate BETWEEN @DateFrom AND @DateTo
GROUP BY CardCode,CardName
UNION
SELECT CardCode,CardName,SUM(DocTotal*-1),0
FROM ORIN
WHERE DocDate BETWEEN @DateFrom AND @DateTo
GROUP BY CardCode,CardName
UNION
SELECT CardCode,CardName,0,SUM(DocTotal)
FROM OINV
WHERE DocDate BETWEEN DATEADD(YEAR,-1,@DateFrom)AND DATEADD(YEAR,-1,@DateTo)
GROUP BY CardCode,CardName
UNION
SELECT CardCode,CardName,0,SUM(DocTotal*-1)
FROM ORIN
WHERE DocDate BETWEEN DATEADD(YEAR,-1,@DateFrom)AND DATEADD(YEAR,-1,@DateTo)
GROUP BY CardCode,CardName
) as tt
group by tt.CardCode,tt.CardName