如何查询将显示在MySQL数据库中从B列到A列扣除的余额

时间:2014-12-17 14:37:43

标签: mysql

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


 TABLE: CDR_RECORDS
 ------------------
 CDR_ID     DATE            CHECK_NO        NAME_OF_PAYEE       CHECKS_ISSUED
 1          2014-01-01      3456111         John Smith          1,830.96                        
 2          2014-01-01      3456112         Chen Lee            90,048.92
 3          2014-01-01      3456113         Hen Lu              22,740.75   

我创建了另一张表,记录了每张支票发行的NCA(现金分配通知)收据的所有数据。


TABLE: NCA
----------
 NCA_DATE       NCA_RECEIVED
 2014-01-01     7,257,000.00    
 2014-01-01     5,564,000.00

使用查询,SELECT SUM(NCA_RECEIVED)将产生12,821,000

我想通过减去支票来显示每张支票发行记录的BANK_BALANCE  每笔支票发行总额为12,821,000,以获得余额如下:


12,821,000 - 1,830 = 12,819,170
12,819,170 - 90,048.92 = 12,729,121.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


任何人都可以帮我查询如何获取扣除每张支票发行的运行余额吗? 任何帮助都将非常感谢..谢谢

感谢您的回答,它真正解决了如何显示运行平衡......

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

 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

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

1 个答案:

答案 0 :(得分:0)

您可以使用变量执行此操作。关键是将总数初始化为`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;