Sql server 我想使用SQL查找一个帐户在前12个月结束时的期末帐户余额
我只有交易信息 我正试图找出如何编写一个查询,让我找到一个动态变化的帐户列表的前2个月(最终是11个月)的期末余额 我想到的但我不确定如何执行的方法是:Sql server 我想使用SQL查找一个帐户在前12个月结束时的期末帐户余额,sql-server,Sql Server,我只有交易信息 我正试图找出如何编写一个查询,让我找到一个动态变化的帐户列表的前2个月(最终是11个月)的期末余额 我想到的但我不确定如何执行的方法是: SELECT AcctName, CurrTotal - SUM(transactions from the last two months), CurrTotal - SUM(transactions from the last month), CurrTotal; 问题是,我不知道如何只要求这些特定交易的总和。(部分
SELECT AcctName, CurrTotal - SUM(transactions from the last two months),
CurrTotal - SUM(transactions from the last month), CurrTotal;
问题是,我不知道如何只要求这些特定交易的总和。(部分原因是我不知道如何在SQL中查找当前日期,因此这会有所帮助)
例如,我有一个会计科目表,其中信息包括“账户名称”和“现金总额”。我还有一个日记账分录表,其中包括日记账分录的金额、分录的日期以及是贷项还是借项
AcctName CurrTotal
Checking 45,325
Savings -65,213
Petty Cash 213,123
EntryID Amount Account Date Credit/Debit
1 1,234 Checking 10/15/15 Debit
2 15,235 Savings 10/4/15 Credit
3 32,134 Checking 9/30/15 Debit
4 145,111 Savings 9/28/15 Credit
5 16,234 Savings 9/25/15 Debit
6 1,000 Petty Cash 9/14/15 Debit
7 2,532 Checking 9/1/15 Debit
8 43,213 Savings 8/22/15 Credit
9 100,323 Checking 8/14/15 Debit
预期交易
AUG SEPT OCT
Checking -90,898 9,425 45,325
Savings 122,112 78,899 -65,213
Petty Cash 212,123 213,123 213,123
您可以使用条件聚合:
DECLARE @last_two_months DATE = DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()) - 2, 0)
DECLARE @last_month DATE = DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()) - 1, 0)
SELECT
coa.AcctName,
coa.CurrTotal - SUM(CASE WHEN je.Date >= @last_two_months THEN je.Amount ELSE 0 END) AS [AUG],
coa.CurrTotal - SUM(CASE WHEN je.Date >= @last_month THEN je.Amount ELSE 0 END) AS [SEPT],
coa.CurrTotal AS [OCT]
FROM ChartOfAccounts coa
INNER JOIN JournalEntries je
ON je.Account = coa.AcctName
GROUP BY
coa.AcctName, coa.CurrTotal
请发布示例数据和预期结果。请使用sqlfiddle.com创建一个场景。您是否尝试使用谷歌搜索“sql server获取当前日期”?上面的链接正是你想要的。@FelixPamittan,我在处理私人公司信息,不能发布数据。我将在原始问题中添加一些模拟数据。@DerekTomes,我这样做了,但我目前看到的四个链接没有告诉我如何操作数据。聚合对我来说是新的。你能解释一下它们是做什么的,以及它们是如何工作的吗(当然,简单地说。)