通过SQL查询收集常见业务报告的数据

时间:2019-06-25 22:11:28

标签: sql ms-access

我有一个带有“总帐”,“帐户类型”和“帐户图表”表的数据库。布局如下:

“帐户类型”

AcctTypeID Autonumber Long Integer Not Null Primary Key
TypeName Text(50) Not Null
Description Memo
Credit Yes/No Not Null Default Yes

“帐户图表”

AcctID Long Integer Not Null Primary Key
AcctName Text(30) Not Null
Description Memo
AcctType Long Integer Not Null

“总帐”

EntryID Autonumber Long Integer Not Null Primary Key
EntryDate Date/Time Not Null Default #1/1/1900#
EntryType Text(12) Not Null Default "DC"
Description Memo
FromAcct Long Integer Not Null
ToAcct Long Integer Not Null
Taxable Yes/No Not Null Default No

表之间的关系

 One-to-Many from 'Chart of Accounts'->AcctID to 'General Ledger'->FromAcct
 One-to-Many from 'Chart of Accounts'->AcctID to 'General Ledger'->ToAcct
 One-to-Many from 'Account Types'->TypeID to 'Chart of Accounts'->AcctType

我首先需要在两个不同的SQL查询中满足以下要求:

  1. 如果ToAcct.AcctType ==(收入或资产),则将“总帐”添加到总收入中。

  2. 如果ToAcct.AcctType ==(费用或负债),则将“总帐”添加到TotalExpenses中。

在修改“帐户类型”以包括收入/资产还是费用/负债之前,我已经尝试了这两个SQL查询:

  1. SELECT SUM(IIF((Credit = TRUE),Amount,0))AS RevenueTotal FROM GeneralLedger;

  2. SELECT SUM(IIF((Credit = FALSE),Amount,0))AS ExpenseTotal FROM GeneralLedger

这些查询有效,但是我在“总帐”窗体上的“贷方”中有额外的复选框。在归一化时,我认为最好由该帐户确定它是借方帐户还是贷方帐户。

在Google上进行多次搜索并阅读了“我不知道如何做”的许多问题和答案后,我看不到任何与我在这里尝试做的事情类似的事情。

输出应为我提供创建损益表,损益表,业务和税务报告所需的信息。我相信我可以通过SQL查询根据其帐户提取金额,但是我不确定如何获取帐户类型的“借方”字段来确定是增加还是减少金额。

如有必要,我可以在此数据库将支持的C#应用​​程序中执行此操作。如果我可以在SQL查询级别执行此操作,则可以在项目中将其用作视图,而不必编写代码。任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

经过几次搜索,我发现我的答案是我需要执行4个不同的查询才能完成我的尝试。相应的查询结果是:

总费用:

NO_ASSERT_PROBE0_1

总收入:

,1

总负债:

NO_ASSERT_KEY

对于总资产:

SELECT SUM(Amount) AS TotalExpense
FROM GeneralLedger INNER JOIN ChartOfAccounts ON ChartOfAccounts.AcctID=GeneralLedger.ToAcct
WHERE ChartOfAccounts.AcctType = 4;

只需要让我的INNER JOIN与WHERE子句一起正常工作即可。简单的东西会杀死...

最有用的链接是:StackOverflow: sql - INNER JOIN WHERE clause