2012-09-19 24 views
13

私は日付と2つの値に基づいて一緒に追加する必要がある2つのテーブルがあります。Mysql UNIONとGROUP BY

これは私にすべての情報のリストを提供します。

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

ここで、2つのテーブルから日次合計の情報をGROUPする必要があります。各テーブルには、同じ日に何かがあれば

$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 

どのように私はグループ、同じ日に2を行いますか?

最後にGROUP BYを追加するとエラーが発生します。またはこれはJOINで行う必要がありますか?組合は、両方のテーブルで見つかった重複を排除するALLので、私はUNIONにUNIONを変更した

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 

答えて

15

あなたは、この使用して派生テーブルを達成することができます。