gpt4 book ai didi

mysql - 根据表 Y 中的值进行小计的条件总和,与表 X 中的值一起显示。然后根据表 X 中的条件生成总计

转载 作者:行者123 更新时间:2023-11-29 20:46:24 27 4
gpt4 key购买 nike

我有表 X:

| key | name   | drcr | drcr_other | coa_type | coa_header |
|-----|--------|------|------------|----------|------------|
| 1 | assets | dr | cr | head | |
| 2 | cash | dr | cr | sub | assets |
| 3 | bank | dr | cr | sub | assets |
| 4 | equity | cr | dr | head | |
| 5 | income | cr | dr | sub | equity |

我有表 Y:

| key | account | drcr | amount |
|-----|---------|------|--------|
| 1 | bank | dr | 1000 |
| 2 | income | cr | 1000 |
| 3 | cash | dr | 100 |
| 4 | bank | cr | 100 |

我想生成一个查询,使其显示:其中 Assets 和权益是其子账户的总计(标题行)。例如,收入是权益的子账户,由于收入为 1000,权益应为 1000。

| account | amount |
|---------|--------|
| bank | 900 |
| income | 1000 |
| cash | 100 |
| assets | 1000 |
| equity | 1000 |

到目前为止,我可以将银行和现金相加,因为它们在表 Y 中需要添加金额,我不确定如何添加 Assets 总额(现金和银行的总和)和权益(总和)的收入)。目前我正在使用以下语句总结所有内容...

SELECT name,
SUM(
IF(account = name AND Y.drcr = X.drcr, amount, 0) - IF(account = name AND Y.drcr = X.drcr_other, amount, 0)
)
AS Total FROM `Y`, `X`
GROUP BY name ORDER BY name

我想我可以使用 coa_header 和 coa_type 字段对总数进行求和。我是 MySQL 的新手,我只是在玩,这只是我正在修改的个人夏季项目。感谢任何帮助,谢谢!

这一切都在 MySQL 5.0.11 中

最佳答案

我不明白银行怎么得到900,因为贷方和借方各有1100。如果你减去它们的总和,当然你会得到0。

我能做的就是向您展示如何使减法成为可能。然后您可以向该技术提供您自己的查询。

这个技巧被称为折叠:对于每一行,您创建N。您想要添加/减去的列变成两列(在您的情况下,N=2),然后您只需减去它们即可。

基本思想如下:

select account, side
, case side when 'dr' then amount else 0 end as debit
, case side when 'cr' then amount else 0 end as credit
from (
select 'dr' as side UNION select 'cr'
) as U
cross join T
where account = 'bank'
;
account side debit credit
---------- ---------- ---------- ----------
bank cr 0 1000
bank cr 0 100
bank dr 1000 0
bank dr 100 0

我们可以将其压缩为一行:

select account
, sum( case side when 'dr' then amount else 0 end ) as debit
, sum( case side when 'dr' then amount else 0 end ) as debit
from (
select 'dr' as side UNION select 'cr'
) as U
cross join T
where account = 'bank'
group by account
;
account debit debit
---------- ---------- ----------
bank 1100 1100

您面临的挑战是以(我猜)借方为 100 的方式连接表格。然后减法就会很容易。 :-)

HTH。

关于mysql - 根据表 Y 中的值进行小计的条件总和,与表 X 中的值一起显示。然后根据表 X 中的条件生成总计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38413331/

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