;With CTE
(
SELECT Name, Date,CAST(0 AS int) AS ReceivedAmount, SaleAmount
FROM SaleInvoice
UNION ALL
SELECT Name, Date, ReceivedAmount ,CAST(0 AS int)
FROM PaymentReceive
)
SELECT c1.Name,c1.Date,c1.ReceivedAmount,c1.SaleAmount,
c2.CummAmount AS Balance
FROM CTE c1
CROSS APPLY (SELECT SUM(SaleAmount)-SUM(ReceivedAmount) AS CummAmount
FROM CTE
WHERE Date<= c1.Date
AND Name = c1.Name
)c2
------------------------------------------------------------------------------------------------------
SQL Server MVP
http://visakhm.blogspot.com/