use*_*381 15 mysql union join group-by
我有2个表,我需要根据日期和2个值加在一起.
这给了我所有信息的清单 - 很好.
$query = (SELECT date, debit, credit , note FROM proj3_cash )
UNION
(SELECT settle, purch, sale, issue FROM proj3_trades)
ORDER BY date";
Run Code Online (Sandbox Code Playgroud)
现在我需要从两个表中对每日总计的信息进行分组.
$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";
Run Code Online (Sandbox Code Playgroud)
很好,但是如果每张桌子上的同一天有什么东西,我会得到这个:
date SUM(debit) SUM(credit)
--------------------------------------
2010-12-02 0.00 170.02
2010-12-02 296449.91 233111.10
Run Code Online (Sandbox Code Playgroud)
如何将两者分组到同一天?
如果我在最后添加GROUP BY - 我只会收到错误.或者这应该通过JOIN完成?
Nik*_*vić 18
您可以使用派生表实现此目的:
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
Run Code Online (Sandbox Code Playgroud)
我已将UNION更改为UNION ALL,因为union将消除两个表中找到的重复项.
| 归档时间: |
|
| 查看次数: |
14205 次 |
| 最近记录: |