【问题标题】:php/mysql add rows together to get totalphp/mysql 将行加在一起以获得总数
【发布时间】:2011-06-13 19:24:00
【问题描述】:

这里是场景。我正在生成一份报告,其中包含在特定时间段内需要支付会费的所有成员。

我已成功选择每个数据库条目并将其显示为 html 表中的一行。

问题是报告必须包含的总字段。每个成员根据他们使用的服务支付不同的金额,因此我必须单独添加每个字段中的值以确保正确的结果。

问题是,如何将行/字段添加在一起?

编辑:

澄清一下。我正在添加已支付的会费和已支付的捐款字段。它们在mysql数据库中是分类和整数。

例如,假设我的查询返回 3 个结果。我希望添加为所有 3 个结果支付的会费并将其显示为 total_dues_paid。捐赠的想法相同。

这对于任何给定数量的结果都必须是动态的,因为这种情况每个月都会发生变化,而且我们在某些月份已经看到了数百个结果。

谢谢

【问题讨论】:

  • 您需要提供有关您的表结构的更多信息,以及您要添加的具体内容。

标签: php mysql codeigniter row addition


【解决方案1】:

添加字段(列):

SELECT col1, col2, col3, (col1+col2+col3) AS Total FROM table;

要将行添加在一起,请使用 SUM() 聚合:

SELECT
  userid,
  SUM(col1) AS col1_total,
  SUM(col2) AS col2_total
FROM table
GROUP BY userid

【讨论】:

  • 有什么方法可以让它自动调整尽可能多的行?
  • @JonYork 使用GROUP BY 和聚合函数已经根据您的WHERE 子句针对选择的行数进行调整。不过,我的示例中没有包含WHERE。在此示例中,如果 user1 有 14 行,而 user2 有 3 行,则您的结果将是 2 行:每个用户 1 行作为 user1 的 14 行和 user2 的所有 3 行的总和。
  • 一切似乎都正常,除了,我如何让我的视图显示该变量?
  • @JohnYork 如果您已使用 AS 关键字为列命名,则使用该别名。例如:SELECT SUM(col1) AS col1_total 然后,如果您从 PHP 中的 mysql 获得结果,则以 $row['col1_total'] 或任何您的结果集数组的形式访问它。这与访问常规列相同。
  • 足够了,但是,我的结果是显示“数组”而不是总和。
【解决方案2】:

您可以添加查询字符串。

SELECT (field1 + field2) AS Total
FROM table

【讨论】:

    猜你喜欢
    • 2018-03-08
    • 2013-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多