mysql - 每个账户每个日期的运行差异

标签 mysql

account  Debit_Balance    Long       Short      Date         Daily_Change (Expected) 
716-05    18981100       27946000   8964860   4/10/2018         0
716-06    -7526070       1676250    9202320   4/10/2018         0
716-07    6596930        26579600   19982700  4/10/2018         0
716-11    -1555190       3298790    4853980   4/10/2018         0
716-05    12861700       20754400   7892750   4/11/2018       -6119400
716-06    -8717010       1585470    10302500  4/11/2018       -1190940
716-07    7900390        28052300   20151900  4/11/2018       1303460
716-11   -1641360        3482290    5123650   4/11/2018       -86170

我需要在“Daily_Change”上方创建列,这将是每个帐户 Debit_Balance 的每日差异。因此,帐户 716-05 的 4/11/2018 的 Debit_Balance 减去 716-05 的 4/10/2018 的 Debit_Balance。在大约一个月的时间里,总共有大约三十个帐户。

我当前使用的查询:

select account, balance as Debit_Balance, int_balance as "Long", 
short_mkt_value as Short, report_date as Date
from table
where group_name = "Carter"
and report_date in
(
select report_date
from table
group by report_date
order by account asc)
order by report_date asc, account asc

最佳答案

尝试以下操作

SELECT t1.*,t1.balance-t2.balance Daily_Change
FROM TestData t1
LEFT JOIN TestData t2
ON t2.report_date=DATE_SUB(t1.report_date, INTERVAL 1 DAY)
  AND t1.account=t2.account
ORDER BY t1.report_date,t1.account

SQL fiddle - http://www.sqlfiddle.com/#!9/033d7b/10

关于mysql - 每个账户每个日期的运行差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49934510/

相关文章:

php - UTF-8,以及 php 中的 mbstring 扩展

mysql - SQL 中的表是否可以有多个列作为外键,这些列仅引用另一个表的一个主键?

MySQL查询同一列的多条数据

mysql - 远程 Glassfish 无法连接到 MySQL

Mysql列的行以另一行的值开始

mysql - 将 Sleep 添加到 mySQL 删除查询

需要 MySQL 字符集

MySQL从600K行中快速选择10个随机行

php - 在 (1, 2) (2, 1) 友谊场景中,有哪些方法可以获得共同的 friend ?

php - 错误值默认 ENUM Mysql 类型