【发布时间】:2020-01-25 05:31:01
【问题描述】:
DECLARE @AccountId int = 1152;
DECLARE @StartDate datetime = '10/1/2019';
DECLARE @EndDate datetime = '1/25/2020';
DECLARE @PreBalance int = (SELECT ISNULL(SUM(Debit), 0) - ISNULL(SUM(Credit), 0)
FROM GL_Voucher m
INNER JOIN GL_Voucher_Item_Type d ON m.Id = d.GL_Voucher_Id
WHERE m.Date < @StartDate
AND d.L5_Id = @AccountId)
SELECT d.Date, d.debit AS Debit, d.Credit, @PreBalance AS Opening
FROM GL_Voucher_Item_Type d
INNER JOIN GL_Voucher m ON d.GL_Voucher_Id = m.Id
INNER JOIN Level5 a ON d.L5_Id = a.Id
INNER JOIN Level4 l4 ON a.L4_Id = l4.Id
INNER JOIN Level3 l3 ON l4.L3_id = l3.Id
INNER JOIN Level2 l2 ON l3.L2_id = l2.Id
INNER JOIN Level1 l1 ON l2.L1_id = l1.Id
WHERE m.Date BETWEEN @StartDate AND @EndDate
AND d.L5_Id = @AccountId
ORDER BY Date ASC
我想首先将余额列显示为 Balance=@Prebalance tehn,如果贷方则 Balance=Balance-Credit,如果借方则 Balance=Balance+Debit
【问题讨论】:
-
这可以做到,但是是非常特定于产品的。请edit您的帖子并标记您正在使用的特定数据库。 Why should I tag my RDBMS?
-
@EricBrandt MS SQL
标签: sql sql-server