如何在 SQL 中对一组类别的值求和


How to sum values across a set of categories, in SQL?

我想获取类别项目的列表并显示链接到这些类别的总金额。我在"交易"表中有"金额"字段,我想将其链接到类别表。

我的表格是这样的:

  1. 类别大师
  2. 子类别母版
  3. 物料主数据
  4. 交易

因此,要将我的"金额"字段设置为类别,我必须在它们之间传递某个公共列。我在子类别主数据中有类别 ID,在项目主数据中有子类别 ID,在事务中有类似的项 ID。

早些时候,当我使用交易日期对金额进行分组时,该过程进展顺利:

SELECT TransactionDate, SUM(Amount) FROM transaction GROUP BY MONTH(TransactionDate)

现在,我使用 categoryname 对其进行分组时面临的问题是,所有金额似乎都是 =50,而在数据库中仍然不同。我知道这真的很愚蠢,但我对编程比较陌生,不知道如何正确使用逻辑。

    SELECT categorymaster.CategoryName, transaction.Amount
    FROM categorymaster
    INNER JOIN subcategorymaster
    INNER JOIN itemmaster
    INNER JOIN transaction
    GROUP BY categorymaster.CategoryName

此答案假定每个表中的主键名为"ID"。 您没有提供该信息。

SELECT categorymaster.CategoryName, sum(transaction.Amount)
  FROM categorymaster
       INNER JOIN subcategorymaster 
             ON subcagetorymaster.CategoryId = categorymaster.ID
       INNER JOIN itemmaster
             ON itemmaster.SubCatId = subcategorymaster.ID
       INNER JOIN transaction
             ON transaction.ItemId = itemmaster.ID
GROUP BY categorymaster.CategoryName