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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了按4个不同级别和总数字字段分组相关的知识,希望对你有一定的参考价值。

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

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

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

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

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

这是我的代码:

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
答案
select company_id, fiscal_year, fiscal_period, account, sum(amount) 
from table  group by company_id, fiscal_year, fiscal_period, account

您需要省略要逐个聚合的字段

另一答案

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

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

这是“明显的”查询。图像中的查询要复杂得多。

以上是关于按4个不同级别和总数字字段分组的主要内容,如果未能解决你的问题,请参考以下文章

Django 查询 - 是不是可以在数据库级别按公共字段对元素进行分组?

来自按级别分组的多索引熊猫数据框的子图

xslt 1.0 使用复合键分组(在不同级别)

Mongoose 聚合内部查找按字段分组

只要按下键盘上的x按钮,如何从一个文本字段中删除值

在ORACLE中,怎么样取把一个字段去掉最后一位,再分组?