在sql中创建财务报表

时间:2016-03-01 08:40:32

标签: sql sql-server-2014 financial

考虑以下表格:

enter image description here

现在,在我继续之前,我应该通过声明我不是会计师(如果你恰好是一个会计师,这可能会显示!!)

我有一张发票表和一张相关的InvoicePayments表以及一个单独的Contacts语句表。我的目的是为最终用户提供为客户创建编号语句的能力,理论上至少可以在将来的任何时间回调。逻辑上应该可以创建一个简单的查询,给定开头余额的输入参数应该能够获得属于具有未结余额的某个联系人的那些发票的总和> 0(从给定时间段开始)将其添加到该未结余额中并同样使用同一时期的发票付款,此时仅从未付余额中减去该金额,留下一个具有该期间的最终期末余额。

我想知道那些在创建复杂查询方面有更多经验的人,如果根据上面的表结构,可以创建一个采用开放平衡,开始和结束日期的存储过程作为输入参数,并按日期顺序生成一张发票/发票付款交易表(默认为在有两者的日期首先开具发票),然后我可以将其作为实际纸质报告的基础,我也想生产

我不希望有人为我编写查询,我真的想知道它是否可以从给定的结构中获得,也许你可以在正确的方向上提供一个微妙的指针,让我开始生成查询。如果我遇到困难,我总能回来但是现在我真的想知道它是否可能,也许更重要的是,如果不是为什么不这样做。我在桌子结构中错过了什么?

1 个答案:

答案 0 :(得分:0)

答案是肯定的,如果您还有一个表,例如客户将ContactsStatements连接到其他表。如果ContactsStatements.ContactId是客户联系人,并且您拥有客户列表,那么您可以加入ContactsStatements.ContactId = [customer].ContactId,然后加入[customer].CustomerId = Invoices.CustomerId

如果您能够实现这一目标,您可以毫无问题地创建上述过程。