gpt4 book ai didi

两个表上的 MySQL 并集,累积值又名 "bank statement"

转载 作者:行者123 更新时间:2023-11-29 14:20:42 26 4
gpt4 key购买 nike

非常感谢您的帮助。

情况是我有这两个表:

表 1:借方。示例:

    date       item   value_debits
2012-08-01 item1 10
2012-08-03 item2 15

表 2:学分。示例:

    date       item   value_credits
2012-07-31 item3 20
2012-08-02 item4 30

期望的结果:

    date       item   value  balance
2012-07-31 item3 20 20
2012-08-01 item1 (10) 10
2012-08-02 item4 30 40
2012-08-03 item3 (15) 25

我可以轻松地分别计算每个表的累积值:

set @cumulative :=0;
select date, item, value_debits, @cumulative := @cumulative + value_debits AS "Cumulated"
from debits
order by date DESC

将这两个表按日期联合和排序来得到这个并不太困难:

    date       item   value
2012-07-31 item3 20
2012-08-01 item1 10
2012-08-02 item4 30
2012-08-03 item3 15

但是如何达到预期的结果超出了我的范围。

提前致谢!

最佳答案

您可以使用:

SELECT     a.date,
a.item,
CASE
WHEN a.value < 0 THEN CONCAT('(', a.value, ')')
ELSE a.value
END AS value,
@bal:=@bal+a.value AS balance
FROM (
SELECT date, item, value_debits*-1 AS value FROM debits
UNION ALL
SELECT date, item, value_credits FROM credits
) a
CROSS JOIN (SELECT @bal:=0) bal_init
ORDER BY a.date
<小时/>

看看这个 SQLFiddle Demo

关于两个表上的 MySQL 并集,累积值又名 "bank statement",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11802598/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com