gpt4 book ai didi

mysql - 使用Mysql从不同名称的不同表中选择值作为贷方和借方并计算余额

转载 作者:行者123 更新时间:2023-11-29 10:39:32 25 4
gpt4 key购买 nike

我需要从具有不同列名的不同表中获取值,并将其选择为可以进行余额计算的通用名称。类似这样的事情:

表 1(来源)

+-----------+--------------+---------------+
| ID_company| date_table1 | credit_table1|
+-----------+--------------+---------------+
| 1 | 2017-08-19 | 50 |
| 1 | 2017-08-19 | 250 |
| 1 | 2017-08-20 | 0 |
+-----------+--------------+---------------+

表 2(来源)

+-----------+--------------+---------------+
| ID_company| date_table2 | credit_table2|
+-----------+--------------+---------------+
| 1 | 2017-08-19 | 150 |
| 1 | 2017-08-19 | 50 |
| 1 | 2017-08-19 | 0 |
+-----------+--------------+---------------+

表3(借方)

+-----------+--------------+---------------+
| ID_company| date_table3 | debit_table3|
+-----------+--------------+---------------+
| 1 | 2017-08-19 | 10 |
| 1 | 2017-08-19 | 10 |
| 1 | 2017-08-20 | 0 |
+-----------+--------------+---------------+

表4(借方)

+-----------+--------------+---------------+
| ID_company| date_table4 | debit_table4|
+-----------+--------------+---------------+
| 1 | 2017-08-19 | 10 |
| 1 | 2017-08-19 | 10 |
| 1 | 2017-08-20 | 0 |
+-----------+--------------+---------------+

结果

+-----------+--------------+---------------+--------------+---------+
| ID_company| date_grouped| total_debit | total_credit | balance |
+-----------+--------------+---------------+--------------+---------+
| 1 | 2017-08-19 | 20 | 200 | 180 |
| 1 | 2017-08-19 | 20 | 300 | 280 |
| 1 | 2017-08-20 | 0 | 0 | 0 |
+-----------+--------------+---------------+--------------+---------+

表之间的关系是 ID_company,但列名不同,我需要计算按日期分组的所有表的贷方、借方和余额。

最佳答案

我认为这应该有效,即使最多三个表中没有给定日期的条目。
余额是每天的,不是累计的。

它不会产生您的示例结果,但我认为您的示例中有错误。您真的需要两行 ID 1 和相同的日期吗?

SELECT 
ID_company,
date_grouped,
sum(credit_table1) + sum(credit_table2) total_credits,
sum(debit_tabel3) + sum(debit_table4) total_debit,
sum(debit_tabel3) + sum(debit_table4)
- (sum(credit_table1) + sum(credit_table2)) balance
FROM (
SELECT
ID_Company,
date_table1 date_grouped,
credit_table1,
0 credit_table2,
0 debit_table3,
0 debit_table4
FROM table1
UNION
SELECT
ID_Company,
date_table2 date_grouped,
0 credit_table1,
credit_table2,
0 debit_table3,
0 debit_table4
FROM table2
UNION
SELECT
ID_Company,
date_table3 date_grouped,
0 credit_table1,
0 credit_table2,
debit_table3,
0 debit_table4
FROM table3
UNION
SELECT
ID_Company,
date_table4 date_grouped,
0 credit_table1,
0 credit_table2,
0 debit_table3,
debit_table4
FROM table4
)
GROUP BY ID_company, date_grouped

关于mysql - 使用Mysql从不同名称的不同表中选择值作为贷方和借方并计算余额,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45774149/

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