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

时间:2018-12-05 23:01:22

标签: sql sql-server sql-server-2014

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

我想做的是在第一列中显示所有活动GL代码的列表,然后在其旁边显示该月所有交易的总和。如果GL代码尚无交易,则Id仍希望显示该代码,但其值为零。

例如,我尝试过左连接到每个表,但是最终,每个总帐代码具有相同的总和乘以代码量。

  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,希望以上内容足够了。我确定我缺少一些简单的东西,谢谢传奇。

1 个答案:

答案 0 :(得分:0)

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

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只是用于定义月份的任何逻辑的占位符。