gpt4 book ai didi

Mysql UNION 和 GROUP BY

转载 作者:IT老高 更新时间:2023-10-29 00:07:40 24 4
gpt4 key购买 nike

我有 2 个表需要根据日期和 2 个值加在一起。

这给了我所有信息的列表 - 很好。

$query = (SELECT  date, debit, credit , note  FROM proj3_cash )
UNION
(SELECT settle, purch, sale, issue FROM proj3_trades)
ORDER BY date";

现在我需要对两个表中的每日总计信息进行分组。

$query = "(SELECT  date, SUM(debit), SUM(credit)FROM proj3_cash  GROUP BY date)
UNION
(SELECT settle as date, SUM(purch) as debit, SUM(sale) as credit FROM proj3_trades GROUP BY date)
ORDER BY date";

很好,但是如果每个表中有相同日期的内容,我会得到:

date        SUM(debit)    SUM(credit)
--------------------------------------
2010-12-02 0.00 170.02
2010-12-02 296449.91 233111.10

如何将两者归为同一天?

如果我在末尾添加 GROUP BY - 我只会得到一个错误。还是应该通过 JOIN 来完成?

最佳答案

您可以使用派生表实现此目的:

SELECT date, SUM(debit), SUM(credit)
FROM
(
SELECT date, debit, credit
FROM proj3_cash
UNION ALL
SELECT settle as date,
purch as debit,
sale as credit
FROM proj3_trades
) derivedTable
GROUP BY date
ORDER BY date

我已将 UNION 更改为 UNION ALL,因为 union 将消除两个表中的重复项。

关于Mysql UNION 和 GROUP BY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12490695/

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