2017-02-08 4 views
1

나는 내가하려고하지만 캔트MySQL은

테이블 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

, 규정에 의한 일반 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;