Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.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
如何查询MySQL数据库中从B列到A列的扣减余额_Mysql - Fatal编程技术网

如何查询MySQL数据库中从B列到A列的扣减余额

如何查询MySQL数据库中从B列到A列的扣减余额,mysql,Mysql,我有一个名为cdr_records的表,其中包含以下列: 表:CDR_记录 ------------------ CDR\u ID日期支票\u无收款人姓名\u签发的支票\u 1 2014-01-01 3456111约翰·史密斯1830.96 2 2014-01-01 3456112陈李90048.92 3 2014-01-01 3456113母鸡路22740.75 我还创建了另一个表,记录了NCA(现金分配通知)接收的所有数据,这些数据将分配给每个支票发行 表:NCA ----------

我有一个名为cdr_records的表,其中包含以下列:


表:CDR_记录 ------------------ CDR\u ID日期支票\u无收款人姓名\u签发的支票\u 1 2014-01-01 3456111约翰·史密斯1830.96 2 2014-01-01 3456112陈李90048.92 3 2014-01-01 3456113母鸡路22740.75 我还创建了另一个表,记录了NCA(现金分配通知)接收的所有数据,这些数据将分配给每个支票发行


表:NCA ---------- NCA_收到NCA_的日期 2014-01-01 7,257,000.00 2014-01-01 5,564,000.00 使用该查询,选择SUM(NCA_RECEIVED)将得到12821000

我想通过减去 每次签发支票的金额为12821000,以获得以下余额:


12821000-1830=12819170
12819170-90048.92=12729121.08
等等,如下所示

CDR_ID DATE CHECK_NO NAME_OF_PAYEE CHECKS_ISSUED BANK_BALANCE 1 2014-01-01 3456111 John Smith 1,830.96 12,819,170.00 2 2014-01-01 3456112 Chen Lee 90,048.92 12,729,121.08 3 2014-01-01 3456113 Hen Lu 22,740.75 12,706,380.33 CDR ID日期支票无收款人姓名支票签发银行余额 1 2014-01-01 3456111约翰·史密斯1830.96 12819170.00 2 2014-01-01 3456112陈李90048.92 12729121.08 3 2014-01-01 3456113母鸡路22740.75 12706380.33
有人能帮我查询如何获得每次支票签发扣除的流动余额吗? 任何帮助都将不胜感激。。谢谢

谢谢你的回答,它真正解决了如何显示跑步平衡

但另一个问题是,我使用外键存储不同表中的数据,如下所示:

表:问题详情 出库标识(PK)出库日期检查无出库金额 1 2014-01-01 345611 1,500.00 2 2014-01-01 345612 21000.12

表:cdr_记录 cdr_id(PK)问题_id(FK) 1 1 2.2

表:nca nca\u编号(主键)nca\u收到nca\u的日期 111 2014-01-01 7,257,000.00 112 2014-01-01 5,564,000.00


我是sql新手,在执行计算时不擅长连接表。如何对关系表执行相同的计算?

您可以使用变量执行此操作。该键正在将总数初始化为`nca表中的值

select r.*,
      (@tot := @tot - checks_issued) as bank_balance
from (select @tot := sum(nca_received) as nca
      from nca
     ) vars cross join
     cdr_records r
order by r.date, r.check_no;
CDR_ID DATE CHECK_NO NAME_OF_PAYEE CHECKS_ISSUED BANK_BALANCE 1 2014-01-01 3456111 John Smith 1,830.96 12,819,170.00 2 2014-01-01 3456112 Chen Lee 90,048.92 12,729,121.08 3 2014-01-01 3456113 Hen Lu 22,740.75 12,706,380.33 Table: issue_details issue_id (PK) issue_date check_no issue_amount 1 2014-01-01 345611 1,500.00 2 2014-01-01 345612 21,000.12

Table: cdr_records cdr_id (PK) issue_id (FK) 1 1 2 2

Table: nca nca_no (PK) nca_date nca_received 111 2014-01-01 7,257,000.00 112 2014-01-01 5,564,000.00
select r.*,
      (@tot := @tot - checks_issued) as bank_balance
from (select @tot := sum(nca_received) as nca
      from nca
     ) vars cross join
     cdr_records r
order by r.date, r.check_no;