Sql server 我想使用SQL查找一个帐户在前12个月结束时的期末帐户余额

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; 问题是,我不知道如何只要求这些特定交易的总和。(部分

我只有交易信息

我正试图找出如何编写一个查询,让我找到一个动态变化的帐户列表的前2个月(最终是11个月)的期末余额

我想到的但我不确定如何执行的方法是:

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,我这样做了,但我目前看到的四个链接没有告诉我如何操作数据。聚合对我来说是新的。你能解释一下它们是做什么的,以及它们是如何工作的吗(当然,简单地说。)