2017-02-08 5 views
1

У меня есть две таблицы & нужна сумма столбца из таблицы как, я стараюсь, но не можешь получить результатMySQL объединить две таблицы и Sum как из таблицы

стола-1 Доставка:

table- Коллекции: 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 BY является недействительной, будет возвращать непредсказуемый результат в более старых версиях MySQL, вызовет ошибку в новых версиях (если в режиме совместимости.) Общее GROUP BY правила говорит: Если предложение GROUP BY указано, каждая ссылка на столбец в списке SELECT должна либо идентифицировать столбец группировки, либо быть аргументом функции набора! – jarlh

+2

Я не вижу предложение 'ON' в вашем запросе. –

+0

вы можете объяснить свой вопрос, это немного запутывает –

ответ

1

Сначала соберите агрегат, затем присоединитесь. Я полагаю, вы хотите присоединиться к del_date = coll_date. Вот полный запрос:

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; 

 Смежные вопросы

  • Нет связанных вопросов^_^