按4个不同级别和总数字字段分组

时间:2018-04-12 14:32:13

标签: sql sql-server tsql

我正在查询具有以下信息的财务数据库:

  • 公司ID
  • 财政年度
  • 财政期间
  • 帐户
  • 金额

我希望按前四个字段对数据进行分组,并显示总数量的分组。

我尝试了GROUP BY,但这似乎不起作用。

在我的屏幕截图中,我试图将1-10行显示为一行,因为除了数量之外所有信息都相同。

enter image description here

这是我的代码:

SELECT        Erp.GLJrnDtl.Company, Erp.GLJrnDtl.FiscalYear, 
Erp.GLJrnDtl.FiscalPeriod, Erp.GLJrnDtl.BalanceAcct, 
Erp.GLJrnDtl.BookDebitAmount - Erp.GLJrnDtl.BookCreditAmount AS Amount

FROM          Erp.GLJrnDtl INNER JOIN
Erp.GLPeriodBal ON Erp.GLJrnDtl.Company = 
Erp.GLPeriodBal.Company AND Erp.GLJrnDtl.FiscalYear = 
Erp.GLPeriodBal.FiscalYear AND Erp.GLJrnDtl.FiscalPeriod = 
Erp.GLPeriodBal.FiscalPeriod AND 
Erp.GLJrnDtl.BalanceAcct = 
Erp.GLPeriodBal.BalanceAcct

WHERE        (Erp.GLJrnDtl.FiscalYear >= 2018) AND (Erp.GLJrnDtl.Company 
= N'011') and (Erp.GLJrnDtl.SegValue1 = N'310050')

GROUP BY Erp.GLJrnDtl.Company, Erp.GLJrnDtl.FiscalYear, 
Erp.GLJrnDtl.FiscalPeriod, Erp.GLJrnDtl.BalanceAcct, 
Erp.GLJrnDtl.PostedDate, Erp.GLJrnDtl.BookDebitAmount, 
Erp.GLJrnDtl.BookCreditAmount, Erp.GLJrnDtl.SegValue1,                                
Erp.GLPeriodBal.BalanceAmt

2 个答案:

答案 0 :(得分:1)

select company_id, fiscal_year, fiscal_period, account, sum(amount) 
from table  group by company_id, fiscal_year, fiscal_period, account

您需要省略要按行在集团外汇总的字段

答案 1 :(得分:0)

请解释为什么这不符合您的要求:

select Company_ID, Fiscal_Year, Fiscal_Period, Account, sum(Amount)
from t
group by Company_ID, Fiscal_Year, Fiscal_Period, Account;

这是显而易见的"查询。图像中的查询要复杂得多。