2017-02-08 12 views
1

を2つのテーブルと合計に参加し、私がしようとしたがMySQLが両方のテーブルから列の合計を必要とする私は2つのテーブル&を持って、両方の表から

表-1配信結果を得るカント:

卓上コレクション: をenter image description here

マイ内部結合問合せは:

SELECT loan_collection.coll_date, 
     sum(loan_collection.coloan_amo) AS coloan_amo, 
     sum(loan_collection.sc_coll) AS sc_coll, 
     sum(loan_collection.total_coll) AS total_coll, 
     loan_collection.year, 
     bag_del_rentcoll.rent_bagdel, 
     bag_del_rentcoll.rent_amo, 
     bag_del_rentcoll.booking, 
     bag_del_rentcoll.rent_rece 
FROM loan_collection AS loan_collection 
INNER JOIN 
    (SELECT del_date, 
      sum(rent_bagdel) AS rent_bagdel, 
      sum(rent_amo) AS rent_amo, 
      sum(booking) AS booking, 
      sum(rent_rece) AS rent_rece 
    FROM bag_del_rentcoll) AS bag_del_rentcoll 
GROUP BY loan_collection.coll_date 

結果次のとおりです。 enter image description here 表2のすべての合計です。どのように私は

enter image description here

として感謝を結果として得ることができます。

+3

、ルールBY一般GROUPは言う(。互換モードでないかぎり)新しいバージョンでエラーが発生します、古いMySQLバージョンでは予測できない結果を返します:ここでは、完全なクエリがある場合はGROUP BY句が指定されている場合、SELECTリストの各列参照は、グループ化列を識別するか、または集合関数の引数でなければなりません! – jarlh

+2

あなたの質問に 'ON'句がありません。 –

+0

あなたは少し混乱しているあなたの質問を説明できますか? –

答えて

1

最初に集計してから参加してください。 del_date = coll_dateに参加したいと思います。

GROUP BYが無効であることを
SELECT 
    lc.coll_date, 
    lc.sum_coloan_amo, 
    lc.sum_sc_coll, 
    lc.sum_total_coll, 
    lc.max_year, 
    bdr.sum_rent_bagdel, 
    bdr.sum_rent_amo, 
    bdr.sum_booking, 
    bdr.sum_rent_rece 
FROM 
(
    SELECT 
    coll_date, 
    SUM(coloan_amo) AS sum_coloan_amo 
    SUM(sc_coll) AS sum_sc_coll, 
    SUM(total_coll) AS sum_total_coll, 
    MAX(year) AS max_year 
    FROM loan_collection 
    GROUP BY coll_date 
) lc 
INNER JOIN 
(
    SELECT 
    del_date, 
    sum(rent_bagdel) AS sum_rent_bagdel, 
    sum(rent_amo) AS sum_rent_amo, 
    sum(booking) AS sum_booking, 
    sum(rent_rece) AS sum_rent_rece 
    FROM bag_del_rentcoll 
    GROUP BY del_date 
) bdr ON bdr.del_date = lc.coll_date; 
関連する問題