如何计算总账中的贷方、借方和余额?

2024-01-02

余额未显示正确的值

MySQL 数据库表:

CREATE TABLE `transactions` (
  `trx_id` int(11) NOT NULL AUTO_INCREMENT,
  `trx_type` enum('debit','credit') DEFAULT NULL,
  `trx_amount` float DEFAULT NULL,
  `trx_description` mediumtext NOT NULL,
  `trx_date` date NOT NULL,
  `purpose_id` int(11) NOT NULL,
  `staff_id` int(11) DEFAULT NULL,
  `admin_id` int(11) NOT NULL,
  `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`trx_id`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;

/*表的数据transactions */

insert  into `transactions`(`trx_id`,`trx_type`,`trx_amount`,`trx_description`,`trx_date`,`purpose_id`,`staff_id`,`admin_id`,`created_at`,`updated_at`)
 values (1,'credit',100,'annual tour','2016-01-01',2,7,2,'2016-11-24 10:28:35','2016-11-29 12:21:08'),
 (2,'debit',200,'Product Sale','2016-11-19',6,5,2,'2016-11-24 10:33:02','2016-11-29 12:21:12'),
 (3,'debit',250,'Product Sale','2016-11-19',6,4,2,'2016-11-24 10:33:11','2016-11-29 12:21:43'),
 (4,'credit',300,'Product Sale','2015-01-27',6,4,2,'2016-11-24 10:33:14','2016-11-29 12:21:53'),
 (5,'credit',450,'Product Sale','2016-01-29',5,2,2,'2016-11-24 10:33:17','2016-11-29 12:21:58'),
 (6,'debit',210,'Product Sale','2016-11-19',6,4,2,'2016-11-24 10:33:20','2016-11-29 12:22:17'),
 (7,'credit',350,'Internal','2016-11-30',14,3,1,'2016-11-24 13:04:04','2016-11-29 12:22:28');

MySQL 查询:

 SELECT trx_id,staff_id
     , SUM(COALESCE(CASE WHEN trx_type = 'debit' THEN trx_amount END,0)) total_debits
     , SUM(COALESCE(CASE WHEN trx_type = 'credit' THEN trx_amount END,0)) total_credits

     , SUM(COALESCE(CASE WHEN trx_type = 'debit' THEN trx_amount END,0)) 
     - SUM(COALESCE(CASE WHEN trx_type = 'credit' THEN trx_amount END,0)) balance 
  FROM erp_transactions  GROUP BY staff_id  HAVING balance <> 0 ORDER BY trx_id;

输出结果:


 select s.*,
        s.debit - s.credit as Balance,
        @RunningBalance:= @RunningBalance + s.debit - s.credit RunningBalance
from 
(
select min(trx_id) trx_id,t.staff_id,
    sum(case when trx_type = 'debit' then trx_amount else 0 end) as Debit,
    sum(case when trx_type = 'credit' then trx_amount else 0 end) as Credit
from  trans t
group by staff_id 
order by trx_id
) s,
(Select @RunningBalance:=0) rb
order by s.trx_id

Result

    +--------+----------+-------+--------+---------+----------------+
| trx_id | staff_id | Debit | Credit | Balance | RunningBalance |
+--------+----------+-------+--------+---------+----------------+
|      1 |        7 |     0 |    100 |    -100 |           -100 |
|      2 |        5 |   200 |      0 |     200 |            100 |
|      3 |        4 |   460 |    300 |     160 |            260 |
|      5 |        2 |     0 |    450 |    -450 |           -190 |
|      7 |        3 |     0 |    350 |    -350 |           -540 |
+--------+----------+-------+--------+---------+----------------+
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何计算总账中的贷方、借方和余额? 的相关文章

  • mongodb对话系统

    我正在实施一个verymongodb 上的简单对话系统 这个想法应该是 当我打开一个 convo 时 它应该显示发送和接收的消息 到目前为止一切正常 并且应该非常容易 通过使用像这样的伪代码这样的简单查询 from my id AND to
  • 使用 JOIN 和 UNION 合并不同表中的记录

    我需要创建一个查询来组合两个表中的数据 我认为可能是 JOIN 和 UNION 的组合 在此示例中 我需要列出状态处于活动状态的所有姓名 仅一次 并将他们的葡萄酒 苏打水 晚餐 甜点和水果偏好组合起来 按姓名排序 我不确定单独的 JOIN
  • 将 SQL 中的数据存储在数组中

    我正在尝试将 sql 数据库中的数据存储到数组中 目前我有这个 query mysql query SELECT FROM InspEmail WHERE Company LIKE company while row mysql fetch
  • Mysql - 如何比较两个 Json 对象?

    将整个 MySql json 列与 json 对象进行比较的语法是什么 以下不起作用 select count criteria from my alerts where criteria industries 1 locations 1
  • 适用于 Windows 的 PHP 支持的 GUI 应用程序

    我知道 PHP 是一种解释性语言 对于基于 Web 的事物来说 不是为在实际操作系统上运行 GUI 应用程序而设计的 但是有没有办法呢 基本上 是否有一个框架 系统允许我创建 本机 基本上是二进制文件 exe 看起来像带有本机控件和所有内容
  • PHP 中的正则表达式:找到第一个匹配的字符串

    我想在非常长的文本中找到第一个匹配的字符串 我知道我可以使用 preg grep 并获取返回数组的第一个元素 但是 如果我只需要第一场比赛 或者我知道提前只有一场比赛 那么这样做效率不高 有什么建议吗 预匹配 http www php ne
  • 如何让MySQL数据库完全在内存中运行?

    我注意到我的数据库服务器支持内存数据库引擎 我想让一个已经运行 InnoDB 的数据库完全在内存中运行以提高性能 我怎么做 我探索了 PHPMyAdmin 但找不到 更改引擎 功能 假设您了解注释中提到的使用 MEMORY 引擎的后果 并且
  • 使用 PDO 在 SQLite 中检索单个(且唯一)行的最简单方法

    我有这个 PDO stmt db gt prepare SELECT FROM channels WHERE id id stmt gt bindValue id id SQLITE3 INTEGER result stmt gt exec
  • 无效的 PDO 查询不会返回错误

    下面的第二条 SQL 语句在 phpMyAdmin 中返回错误 SET num 2000040 INSERT INTO artikel artikel nr lieferant nr bezeichnung 1 bezeichnung 1
  • 如何在 JdbcTemplate 中创建 mySQL 存储过程

    背景 为了解决 MySql 中某些语句只允许在存储过程中出现的问题 我尝试在 JdbcTemplate 提交的 sql 中创建 运行然后删除存储过程 一个简单的例子是 这恰好是在 Spring Boot 中 Service public c
  • Yii2 DropDownList Onchange 更改自动完成小部件“源”属性?

    我已经尝试过这个 yii2 依赖的自动完成小部件 https stackoverflow com questions 27025791 yii2 dependent autocomplete widget 但我不知道为什么它不起作用 这是我
  • 我可以显示我在 PHP 中设置的所有 cookie 吗?

    我正在尝试诊断 cookie 中的错误 但 cookie 的名称不是应有的名称 PHP 有没有办法打印我的域设置的所有 cookie 你有没有尝试过 print r COOKIE
  • ZF2 工厂获取参数

    我有一个动态类别导航 在导航工厂中 我想从路线获取参数 我怎样才能做到这一点 在我看来 在我的 module php 中 public function getServiceConfig return array factories gt
  • 解析 PHP 响应:未捕获的语法错误:意外的标记 <

    我正在使用 AJAX 来调用 PHP 脚本 我唯一需要从响应中解析的是脚本生成的随机 ID 问题是 PHP 脚本会引发许多错误 这些错误实际上很好 不会妨碍程序功能 唯一的问题是当我跑步时 parseJSON response I get
  • 如何获取mysql中一条记录的大小

    如果表包含 TEXT 或 BLOB 类型的字段 如何获取 MySql 中记录的大小 是否可以使用sql语句获取记录或表的大小 要计算字符串或 blob 的大小 以字节为单位 请使用LENGTH YourColumn http dev mys
  • $_SESSION 中保存大量信息可以吗?

    我需要存储许多数组 SESSION以防止从 MySQL 检索信息 可以吗 其中 太多 的信息有多少 SESSION还是没有 太多 谢谢 附 或者更好地使用http php net manual en book memcache php ht
  • 无法在 Centos 上安装 php-mysqli 扩展

    我正在尝试将 mysqli 扩展安装到 php yum install php mysqli 我收到下一个错误 Transaction Check Error file usr share mysql charsets Index xml
  • 如何显示不同页眉的页面? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我正在为我的学校项目开发网站 但我遇到了一个问题 我在每个页面上显示一个标题 我的标题之一包含登录表单 另一标题包含用户名 搜索栏等 问题是
  • PHP - 查找和比较日期

    你好 我有 foreach 我可以在其中获取数据库中的事件数据 我使用数据库中的日期名称 例如 event date 我需要在一个 div 中比较具有相同日期和输出的操作 例如我有这个事件 活动一 9 月 13 日 活动二 9 月 1 日
  • 处理查询字符串参数时 Codeigniter 缓存问题

    问候 我正在编写一个 CI Web 应用程序 它实现标准文件缓存功能 如下所示 this gt output gt cache n 我使用了段和查询字符串参数的组合 因此似乎遇到了问题 我在用例和输出类代码中看到的是 缓存仅基于段 像这样

随机推荐

  • HTML Button 的 jQuery 函数在使用 MVC FileResult 时遇到问题

    我打算让这个函数调用我的 MVC 操作方法来返回 CSV 报告 function exportButton click function get curReport GetCSVReport 如果我制作一个像下面的代码一样的按钮 那么当单击
  • 我的 docker 镜像是否需要自己的 consul 客户端实例?

    我有一个 dockerized 应用程序 分为几个容器 一些前端和后端服务器 负载均衡器 mysql elasticsearch 等 负载均衡器的配置需要知道哪些容器已启动 因此我使用 Consul 服务发现来注册服务 但我不太确定在每个
  • 大型 MySQL 表

    对于我正在开发的Web应用程序 我需要存储大量记录 每条记录将由一个主键和一个 短的 字符串值组成 我期望有大约 100GB 的可用存储空间 并且希望能够全部使用 记录会被频繁地插入 删除和读取 我必须使用MySQL数据库 数据完整性并不重
  • PHP + MySQL - 从数据库自动完成而不从表获取数据

    我正在进行一个关于讨论室服务的小型大学项目 现在我的任务是实现订购名称的自动完成功能 我已经用谷歌搜索了一些教程 我不确定出了什么问题 当我尝试输入名称时 前面没有输入任何数据 这是我的表单代码
  • 新 iOS 的应用程序图标大小

    我意识到 iOS 7 尚未发布 不应该被讨论 但我无法在任何地方找到这个问题的答案 iOS 7 几天后就会发布 我提交了 iOS 7 的应用程序 收到一条警告 说我缺少图标大小 120 X 120 这显然是 iOS 7 中图标的新标准大小
  • C# JsonConvert.DeserializeAnonymousType 失败

    我正在尝试反序列化 Azure 函数应用程序中的字符串输入 我的输入是 messageid 1 deviceid Android temperature 20 0 humidity 47 0 eventprocessedutctime 20
  • random.choices 带有加权选项输出

    import random a 1 b 2 c 3 print random choices a b c 50 3 1 上面的代码输出 1 2 或 3 有人可以解释为什么输出有方括号吗 Because random choices popu
  • 如何通过 aws Java SDK 公开 S3 对象?

    如何通过 AWS Java SDK 公开 S3 对象 具体来说 通过 Java AWS SDK 的哪些 API 方法可用于在上传对象时将其公开 在一篇文章中找到了答案亚马逊AWS论坛 https forums aws amazon com
  • Tomcat的BIO Connector和NIO Connector有什么区别?

    我想了解tomcat NIO连接器的内部结构 当我们创建一个实现 CometProcessor 的 servlet 时 线程到底是如何使用的 它仍然是每个连接一个线程吗 据我读到 对话是这样的 客户端连接到 servlet Servlet
  • 如何通过线程限制核心数量

    下面发布的代码启动一个线程 在我的 macbookpro 上启动 4 个核心 有没有办法限制线程应使用多少个核心 import threading import logging logging basicConfig level loggi
  • 如何制作灰色的 HTML 表单?

    我想要一组 HTML 文本
  • 访问 NLog 中的内存目标

    假设我的 nlog config 中有以下内容 取自http nlog project org documentation v2 0 1 html T NLog Targets MemoryTarget htm http nlog proj
  • 将均衡器附加到 Android 全局音频输出

    我计划为 Android 制作一个均衡器应用程序 我在均衡器类文档中注意到here http developer android com reference android media audiofx Equalizer html 它说 注
  • 在浏览器客户端生成 rsa 密钥对

    我对这种编程不是很专家 我知道有几个类似的问题 但有人准确地回答了我需要的问题 我的团队 和我 正在开发公钥基础设施 我们陷入了密钥生成 在客户端 但我们发现有关它的文档很少 我们知道有以下选择 keygen 标签 gt 生成 SPKAC
  • 无法在 IntelliJ 中选择类作为主类

    我在 IntelliJ 中有一个 Java 项目 我刚刚在嵌套文件夹层次结构中添加了一堆文件 其中许多文件都是测试并包含主要方法 因此我应该能够运行它们 但是我不知道如何做到这一点 我是 IntelliJ 的新手 以前的文件已显示在项目层次
  • HTML 和 CSS 背景图像未显示

    我已经仔细检查了我的 URL 和文件名 但我似乎无法显示图像 为什么会这样呢 这是我的代码 注意 p 在body标签里面 我没有添加完整的代码 我只添加了head和具体问题 p p class guarantee Our guarantee
  • 使用 javascript 和 PHP 发送电子邮件的简单方法 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我需要能够从用户那里获取电子邮件地址
  • 你能以任何方式在 Git 中获得重复的哈希值吗?这有什么影响

    我的观点是 应该有可能获得重复的 git 哈希 因为哈希代码是唯一性的压缩表示 因此会有一些步骤序列产生相同的哈希代码 更重要的是 应该有一系列步骤 其中提交不同的更改但产生相同的哈希码 例如 在同一台计算机上克隆同一存储库两次 在不同的存
  • ec2 ssh 登录失败“权限被拒绝(公钥)”[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 这次我真的搞砸了 我不小心更改了 ssh authorized keys 中的 xxxxx pem 权限 所以现在我无法再登录 SSH 权
  • 如何计算总账中的贷方、借方和余额?

    余额未显示正确的值 MySQL 数据库表 CREATE TABLE transactions trx id int 11 NOT NULL AUTO INCREMENT trx type enum debit credit DEFAULT