php - mysql SELECT 中的运行总计

标签 php mysql

感谢您提供的所有示例以及对运行总计的帮助。 显然我错过了一些东西:

<?php
include 'connect.php';
$tdebit=0;
$tcredit=0;
$sql = <<<SQL
SELECT  ...., ($tdebit=$tdebit+debit) AS tdebit,
($tcredit=$tcredit+credit)  AS tcredit  
FROM accounting
SQL;

if(!$result = $db->query($sql)){
    die('There was an error running the query [' . $db->error . ']');
}
$items = array();
while($row = $result->fetch_assoc()){   
    array_push($items, $row);
}
echo json_encode($items);
mysqli_close($con);
?>

如果字段(贷方/借方)中有值,则结果为 1;如果值为零,则结果为 0。 不支持任何“SET”或“:=”,查询不会执行。

感谢您的帮助,JPB

最佳答案

对于运行总计,您需要数据库中的变量,而不是应用程序层。

所以:

SELECT ....,
      (@tdebit := @tdebit + debit) AS tdebit,
      (@tcredit := @tcredit + credit) AS tcredit  
FROM accounting CROSS JOIN
     (SELECT @tcredit := 0, @tdebit := 0) params
ORDER BY ??;

通常,在计算运行总计时,您希望累加按特定顺序进行。除非指定 ORDRE BY 子句,否则不保证 SQL 结果集按特定顺序排列。 ?? 用于插入适当的列。

关于php - mysql SELECT 中的运行总计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39438313/

相关文章:

javascript - 将登录名和地理位置(来自 javascript)发送到服务器

PHP & mysql 显示来自多个表的数据

mysql - 通过匹配记录查找mysql表

c# - 如何连接两个表,以便结果包含第一个表的值之间的第二个表的值

php - 我使用 phpmyadmin 更改了我的 WordPress 密码,现在我有一个数据库错误

php - 我可以从另一个网站呈现表单吗

php - Laravel Eloquent 基本查询问题

php - 使用准备好的语句或其他优化 PHP PDO 中的表创建

android - 如何从插入的记录中检索数据以显示在另一个android Activity 中?

php - 我可以使用 PHP 从 JQuery AJAX 请求返回输出状态吗?