MySQL 期初期末余额及日期范围

2023-12-03

我有一张桌子transactions在我的 MySQL 数据库中,有 50K 条记录。数据如下所示。

trx_date    bill        due
2020-03-01  100.00      10.00
2020-03-02   50.00      20.00   
2020-03-02  100.00       0.00  
2020-03-03  200.00      30.00  
2020-03-04  100.00      10.00
...
...

我的目标是用查询参数显示查询结果from_date and to_date

从开桌开始日期起为0,计算为

opening(+) bill (+) due (-) closing = ( opening+bill ) - due

trx_date    opening     bill        due     closing
2020-03-01  0           100.00      10.00    90.00
2020-03-02  90.00       50.00       20.00   120.00     
2020-03-02  120.0       100.00       0.00   220.00
2020-03-03  220.00      200.00      20.00   400.00  
2020-03-04  400.00      110.00      10.00   500.00
....
....

我不知道获取上一个日期的最佳方式是什么closing对于我选择的 from_dateopening.

from_date=2020-03-03 and to_date=2020-03-04

trx_date    opening     bill        due     closing    
2020-03-03  220.00      200.00      20.00   400.00  
2020-03-04  400.00      110.00      10.00   500.00

我的观点是如何打开220.00从之前的结果来看?为了从之前的结果中获取 220.00,可能会有数千条记录,那么最佳实践是什么?


您需要计算所有opening and closing从第一个开始的值trx_date,然后按您感兴趣的日期过滤结果:

SELECT trx_date, opening, bill, due, closing
FROM (
  SELECT trx_date, 
         @balance AS opening,
         bill,
         due,
         @balance := @balance + bill - due AS closing
  FROM transactions
  CROSS JOIN (SELECT @balance := 0) ini
  ORDER BY trx_date
) tx
WHERE trx_date BETWEEN '2020-03-03' AND '2020-03-04'

Output:

trx_date    opening     bill    due     closing
2020-03-03  220         200     20      400
2020-03-04  400         110     10      500

dbfiddle 上的演示

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySQL 期初期末余额及日期范围 的相关文章

随机推荐

  • 允许在 IIS/Azure 中的 ASP.NET Core 的 URL 中使用冒号 (:)

    我有一个正在部署到 Azure 的 ASP NET Core 应用程序 该应用程序在 URL 中接收包含冒号 时间戳 的字符串 例如 http localhost 5000 Servers 208 100 45 135 28000 2017
  • npm 找不到模块

    我已经遍及 Google 和 StackOverflow 查看与类似问题相关的各种线程 但到目前为止没有任何效果 我的问题是 npm 似乎安装不正确 或者其他什么 我真的不知道 Node 和 npm 是我用来支持我在另一台机器上开发的 Sa
  • 如何使用 Javascript 通过单击一次向嵌套在 UL 中的多个子元素添加和删除类?

    首先我想为这么长的问题道歉 我只是希望我不会因此而变得难以理解 我在 UL 中创建了一个包含三个菜单元素的侧边栏 这些元素可展开以显示子元素 更改背景颜色并在单击时删除悬停效果 我通过定义一个函数来实现此目的 该函数在单击菜单元素时添加和删
  • selenium 并单击带有 href=javascript 的“a”

    我正在尝试单击链接 但遇到了困难 相关的HTML代码是 div style display block a href style color 000 Close window a table border 0 tbody tbody tab
  • 在 Airflow 中设置 S3 日志记录

    这让我抓狂 我正在云环境中设置气流 我有一台服务器运行调度程序和网络服务器 另一台服务器作为芹菜工作人员 我使用的是airflow 1 8 0 运行作业效果很好 什么refuses工作就是记录 我已经在两台服务器上的airflow cfg中
  • ReactJS onClick状态改变落后一步

    我正在使用 ReactJS 构建一个非常原始的测验应用程序 但在更新我的状态时遇到了问题Questions成分 它的行为是渲染正确的索引questions尽管数组到 DOMthis state questionNumber总是落后一步han
  • 检查 URL 片段中的关键字

    我使用以下内容获取 URL 例如domain com 2 然后我使用该片段将用户重定向到domain com page 2 然而 有时用户可能只看到一个哈希值而没有数字 或者我可能在单击表单时在 URL 中使用关键字 例如 反馈 问题是这会
  • Android 中如何获取联系人的所有详细信息

    给定一个联系人 ID 我可以通过对每个字段进行不同的查询来获取各种联系详细信息 如姓名 电话 电子邮件 ID 等 但是是否有一种方法可以通过进行单个查询来获取与此联系人 ID 相关的所有详细信息 必须更改一些教程内容提供商由于它引用了已弃用
  • 省略双引号在 PostgreSQL 上进行查询

    简单的问题 有没有办法在PostgreSQL中省略双引号 这是一个例子 给出select from A 我会检索ERROR relation a does not exist 我必须给select from A 得到真正的结果 有没有办法在
  • 如何将 Unity3D 5 Windows 应用程序打包到单个 exe 文件中?

    我是Unity3d开发的新手 我创建了两个版本的 3D 拼图应用程序 一个用于 Mac 另一个用于 Windows Mac 应用程序是使用其中包含的包内容创建的 Windows应用程序是使用exe文件和一个单独的数据文件夹创建的 该数据文件
  • 在 Java 中切换布尔变量的最简洁方法?

    在 Java 中是否有比简单的 if else 更好的方法来否定布尔值 if theBoolean theBoolean false else theBoolean true theBoolean theBoolean
  • 如何使用LiveData实现zip功能

    我正在使用两个 LiveData 从我的服务器获取数据 并希望在两个 LiveData 完成后得到结果 LiveData live1 LiveData live2 MutableLiveData live3 live1 observe th
  • R dplyr 根据多个选定列的条件过滤行

    我有一个数据框DF 我想根据几个选定列的条件对其进行过滤 例如 我想过滤 DF 中满足该行包含任何值的条件的行小于0 03在列中PCS AB PCS AD PCS BD DF lt cbind data frame A c 100 10 1
  • 如何在 tkinter 中创建半透明窗口?

    I am trying to create a translucent window in Tkinter like the one in windows 11 这个怎么做 如果我们不能做到这一点 我们可以捕获屏幕的一部分并使用 cv2 对
  • CORS 预检通道中的 CORS 标头“Access-Control-Allow-Headers”中缺少令牌

    后端返回 Access Control Allow Headers 我有一个请求 例如 fetch url here headers X Auth token 它可以在 Chrome 中运行 但对于 Firefox 我得到 跨源请求被阻止
  • AttributeError:'str'对象在pytorch中没有属性'dim'

    将模型预测发送到模型时 我在 PyTorch 中得到以下错误输出 有谁知道发生了什么事吗 以下是我创建的架构模型 在错误输出中 它显示问题存在于 x self fc1 cls hs 行中 class BERT Arch nn Module
  • 使用意图过滤器启动时 Xamarin.Android mvvmcross 应用程序崩溃

    通过链接打开 Android 应用程序时 Android 应用程序崩溃 并显示NullReferenceExcetpion The NRE发生在base OnCreate bundle 方法 底座类型为MvxFragmentCompatAc
  • 如何根据屏幕分辨率动态设置fxml中的首选宽度和高度javafx

    我是javafx新手 是否可以根据屏幕分辨率在 fxml 文件中动态设置首选宽度和高度 我知道如何获取屏幕分辨率并将其设置为舞台 Screen screen Screen getPrimary Rectangle2D bounds scre
  • 解释 CorFlags 标志

    我该如何解释CorFlags标志以及如何使用它来确定 NET 程序集是为 x86 还是 x64 构建的 会不会是下面这个 corflags MyAssembly dll 微软 NET 4 5引入了一个新选项 任何 CPU 32 位首选 在新
  • MySQL 期初期末余额及日期范围

    我有一张桌子transactions在我的 MySQL 数据库中 有 50K 条记录 数据如下所示 trx date bill due 2020 03 01 100 00 10 00 2020 03 02 50 00 20 00 2020