SQL Server 2014 - 即使为零也显示记录(总帐报告)
SQL Server 2014 - Show record even if zero (General Ledger reporting)
我正在为财务团队创建总帐报表。我有一个日历月的所有交易清单。当然,无论出于何种原因,某些 GL 代码并非每个月都使用。我确实有另一个 table,其中包含所有活动 GL 代码的列表。
我想做的是在第一列显示所有活动 GL 代码的列表,然后在它旁边显示该月所有交易的总和。如果 GL 代码没有交易,我仍然喜欢显示代码但值为零。
我尝试左连接到每个 table,但我最终得到的每个 GL 代码都具有相同的总和乘以代码的数量,例如。
- 3115 - 资源 - -897483.18
- 3110 - 维护 - -897483.18
- 3115 - 其他 - -897483.18
预期结果
- 3115 - 资源 - -299161.06
- 3110 - 维护 - 0
- 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
只是用于定义月份的任何逻辑的占位符。
我正在为财务团队创建总帐报表。我有一个日历月的所有交易清单。当然,无论出于何种原因,某些 GL 代码并非每个月都使用。我确实有另一个 table,其中包含所有活动 GL 代码的列表。
我想做的是在第一列显示所有活动 GL 代码的列表,然后在它旁边显示该月所有交易的总和。如果 GL 代码没有交易,我仍然喜欢显示代码但值为零。
我尝试左连接到每个 table,但我最终得到的每个 GL 代码都具有相同的总和乘以代码的数量,例如。
- 3115 - 资源 - -897483.18
- 3110 - 维护 - -897483.18
- 3115 - 其他 - -897483.18
预期结果
- 3115 - 资源 - -299161.06
- 3110 - 维护 - 0
- 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
只是用于定义月份的任何逻辑的占位符。