Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在SQL中,如何对一组类别的值求和?_Php_Mysql_Sql - Fatal编程技术网

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

Php 在SQL中,如何对一组类别的值求和?,php,mysql,sql,Php,Mysql,Sql,我想获得一个类别项目列表,并显示链接到这些类别的总金额。我在“交易”表中有“金额”字段,我想将其链接到类别表 我的桌子就是这样的: 类别主管 子类别主目录 项目主管 交易 所以,要将我的“金额”字段添加到类别中,我必须在它们之间传递一个公共列。我在SubCategory master中有CategoryID,在item master中有subcatid,在事务中有类似的itemid 早些时候,当我使用交易日期对金额进行分组时,流程进展顺利: 从交易组中按月(交易日期)选择交易日期、金额(金额)

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

我的桌子就是这样的:

  • 类别主管
  • 子类别主目录
  • 项目主管
  • 交易
  • 所以,要将我的“金额”字段添加到类别中,我必须在它们之间传递一个公共列。我在SubCategory master中有CategoryID,在item master中有subcatid,在事务中有类似的itemid

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

    从交易组中按月(交易日期)选择交易日期、金额(金额)

    现在,我在使用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
    

    您是否尝试用所有外键指定ON?请编辑此问题。发布您的实际代码、一些示例数据以及给定该示例数据的预期结果。缩短您的代码使我们所有人都只是看着它,想知道他是否忘记了条件,而没有对金额进行汇总。。。。或者在SELECT transactionDate中,GROUP BY MOUNT()甚至不应该是有效语句,因为transactionDate必须位于GROUP BY中。但是,选择MOINT(交易日期)将。。。。。为了让任何人都能有效地帮你解决未知问题,你是生命的救世主@巨石