gpt4 book ai didi

php - 根据另一个 mysql 列中的 mysql 值求和 php 数组(从 mysql 结果创建)

转载 作者:行者123 更新时间:2023-12-01 00:04:56 25 4
gpt4 key购买 nike

一个名为 18_7_ChartOfAccounts 的表看起来像这样:

ID | AccountNumber
-------------
1 | 2310
2 | 2380
3 | 2610

另一个名为 2_1_journal 的表看起来像这样:

ID | Amount | DebitAccount
--------------------------
1 | 26.03 | 2310
2 | 200.00 | 2310
3 | 3.63 | 2380
4 | 119.83 | 2380
5 | 33.86 | 2610
6 | 428.25 | 2610

目标是获得如下所示的结果:

DebitAccount 2310 total is: 226.03
DebitAccount 2380 total is: 123.46
DebitAccount 2310 total is: 462.11

本例中的 226.03 等于 26.03 + 200.00

最初的mysql代码

$query = "SELECT j.Amount, j.DebitAccount FROM 18_7_ChartOfAccounts AS c LEFT JOIN 2_1_journal AS j ON (c.AccountNumber = j.DebitAccount)";
$sql = $db->prepare($query);
$sql->execute();
$data = $sql->fetchAll(PDO::FETCH_ASSOC);

print_r($data);获取长长的数组列表,例如

[31] => Array
(
[Amount] => 26.03
[DebitAccount] => 2310

[32] => Array
(
[Amount] => 200.00
[DebitAccount] => 2310

如果在mysql查询中使用SUM(j.Amount)然后只得到一个总金额(假设总金额为 Column Amount )。

foreach($data as $result){
if(strlen($result['Amount']) > 0 ) {
echo "Amount ". $result['Amount']. "Account name ". $result['DebitAccount']. "<br>";
print_r (array_sum($result));
}
}

得到这样的东西

Amount 123.97Account name 2310
2433.97Amount 26.03Account name 2310
2336.03Amount 200.00Account name 2310

关于如何获得必要结果的任何想法(标记为粗体)?

更新

将 $query 更改为

$query = "SELECT SUM(j.Amount), j.DebitAccount FROM 18_7_ChartOfAccounts AS c LEFT JOIN 2_1_journal AS j ON (c.AccountNumber = j.DebitAccount) group by j.DebitAccount";

print_r($data);像这样得到数组

Array
(
[0] => Array
(
[SUM(j.Amount)] =>
[DebitAccount] =>
)

[1] => Array
(
[SUM(j.Amount)] => 110900.16
[DebitAccount] => 2310
)

[2] => Array
(
[SUM(j.Amount)] => 3660.86
[DebitAccount] => 2380
)

使用数组似乎一切正常。现在 foreach 改为 echo "Amount ". $result['SUM(j.Amount)']. " Account name ". $result['DebitAccount']. "<br>";

获取

Amount 110900.16 Account name 2310
Amount 3660.86 Account name 2380
Amount 85247.40 Account name 2610

好像也可以。谢谢

最佳答案

你做错了。可以通过MySql语句本身获取和。

将聚合函数 sum 与 group by 子句一起使用。

像这样,

SELECT DebitAccount,sum(Account) from  2_1_journal group by DebitAccount

您的完整代码:

$query = " SELECT DebitAccount,sum(Account) as Total from  2_1_journal group by DebitAccount";
$sql = $db->prepare($query);
$sql->execute();
$data = $sql->fetchAll(PDO::FETCH_ASSOC);
foreach($data as $result){
if(strlen($result['Total']) > 0 ) {
echo "DebitAccount ". $result['DebitAccount']. "Total is: ". $result['Total']. "<br>";
print_r (array_sum($result));
}
}

关于php - 根据另一个 mysql 列中的 mysql 值求和 php 数组(从 mysql 结果创建),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17391557/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com