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

Posted

技术标签:

【中文标题】按 4 个不同级别和总数字字段分组【英文标题】:Group by 4 different levels and total numeric field 【发布时间】:2018-04-12 14:32:13 【问题描述】:

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

公司编号 财政年度 会计期间 帐户 金额

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

我尝试了 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

【问题讨论】:

这里的大多数人想要格式化的文本,而不是图像。 (而且我无法在手机上阅读那个微小的图像文本。) 我什至无法在我的电脑上阅读。 【参考方案1】:
select company_id, fiscal_year, fiscal_period, account, sum(amount) 
from table  group by company_id, fiscal_year, fiscal_period, account

您需要将要聚合的字段逐行排除在组之外

【讨论】:

【参考方案2】:

请解释为什么这不能满足您的要求:

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

这是“显而易见的”查询。图片中的查询要复杂得多。

【讨论】:

我无法解释。我对 SQL 没有任何经验,但除了你们和谷歌之外,我没有其他人可以问。我几乎没有足够的知识来整理这个查询,因此我问这个问题。感谢您的帮助。

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

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

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

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

如何通过不同级别的枢轴聚合然后在pyspark中进行内部连接?

显示 R 中图例的选择级别

linux运行级别