我有一个带有“总帐”,“帐户类型”和“帐户图表”表的数据库。布局如下:
“帐户类型” :
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查询中满足以下要求:
如果ToAcct.AcctType ==(收入或资产),则将“总帐”添加到总收入中。
如果ToAcct.AcctType ==(费用或负债),则将“总帐”添加到TotalExpenses中。
在修改“帐户类型”以包括收入/资产还是费用/负债之前,我已经尝试了这两个SQL查询:
SELECT SUM(IIF((Credit = TRUE),Amount,0))AS RevenueTotal FROM GeneralLedger;
SELECT SUM(IIF((Credit = FALSE),Amount,0))AS ExpenseTotal FROM GeneralLedger
这些查询有效,但是我在“总帐”窗体上的“贷方”中有额外的复选框。在归一化时,我认为最好由该帐户确定它是借方帐户还是贷方帐户。
在Google上进行多次搜索并阅读了“我不知道如何做”的许多问题和答案后,我看不到任何与我在这里尝试做的事情类似的事情。
输出应为我提供创建损益表,损益表,业务和税务报告所需的信息。我相信我可以通过SQL查询根据其帐户提取金额,但是我不确定如何获取帐户类型的“借方”字段来确定是增加还是减少金额。
如有必要,我可以在此数据库将支持的C#应用程序中执行此操作。如果我可以在SQL查询级别执行此操作,则可以在项目中将其用作视图,而不必编写代码。任何帮助都将不胜感激。
答案 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子句一起正常工作即可。简单的东西会杀死...