SQL Server 2014 - 即使为零也显示记录(总帐报告)

SQL Server 2014 - Show record even if zero (General Ledger reporting)

我正在为财务团队创建总帐报表。我有一个日历月的所有交易清单。当然,无论出于何种原因,某些 GL 代码并非每个月都使用。我确实有另一个 table,其中包含所有活动 GL 代码的列表。

我想做的是在第一列显示所有活动 GL 代码的列表,然后在它旁边显示该月所有交易的总和。如果 GL 代码没有交易,我仍然喜欢显示代码但值为零。

我尝试左连接到每个 table,但我最终得到的每个 GL 代码都具有相同的总和乘以代码的数量,例如。

  1. 3115 - 资源 - -897483.18
  2. 3110 - 维护 - -897483.18
  3. 3115 - 其他 - -897483.18

预期结果

  1. 3115 - 资源 - -299161.06
  2. 3110 - 维护 - 0
  3. 3115 - 其他 - 0

使用SQL Server 2014,希望以上信息足够了。我确定我遗漏了一些简单的东西,谢谢 Legends..

您可以只使用相关子查询:

select gl.*,
       (select sum(t.amount)
        from transactions t
        where t.gl_code = gl.gl_code and
              t.transaction_date >= @date_start and
              t.transaction_date < @date_end
       ) as sum_amount
from gl;

@date_start@date_end 只是用于定义月份的任何逻辑的占位符。