2016-08-10 1 views
0

моего запросаКак объединение и получить общую сумму три таблиц

 ------------------------------------------ 
    Select cat_name,cat,total 
     From 
      (
      SELECT a.category_name as cat_name, 
      Count (a.category_name) as cat, 
        Sum(b.position) as total 
       FROM erom.category a, erom_kmch.nsdl b 
      WHERE a.bene_type_nsdl = b.bene_type 
       AND a.bene_stype_nsdl= b.bene_stype 
       And b.date ='2016-07-22' 
      Group By cat_name 
     UNION All 
      SELECT a.category_name as cat_name, 
        Count(a.category_name) as cat, 
        Sum(b.shares) as total 
       FROM erom.category a, erom_kmch.cdsl b 
      WHERE a.type_cdsl = b.type 
       AND a.bo_substat_cdsl= b.bo_substat 
       And b.date ='2016-07-22' group by cat_name 
     UNION All 
      SELECT a.category_name as cat_name, 
        Count(a.category_name) as cat, 
        Sum(b.shares) as total 
      FROM erom.category a, erom_kmch.member_member_master b 
      WHERE a.substatus_phy = b.substatus 
       And b.date ='2016-07-22' 
       And shares > '0' 
     Group By cat_name 
     ) 
     c Group By cat_name 
     ------------------------------------ 

Возвращение

 ---------------------------- 
     cat_name    cat  total 
     Resident Individual 2705  2317048 
    --------------------------------------- 

если я бег три таблицы отдельно я получить выход в

 ---------------------------------------- 
     cat_name    cat  total 
     Resident Individual 2705  2317048 
     Resident Individual 991  355218 
     Resident Individual 3284  1219027 
     --------------------------------------- 

но мне нужен выход как

 -------------------------- 
     cat_name     cat  total 
     Resident Individual  6980  3891293 
     ----------------------------------- 

Я пытаюсь получить общий счет имени поля в таблице, но я получаю ответ только от первой таблицы. Помогите мне найти решение.

+1

MySQL или Oracle? Вы уверены, что опубликовали точный запрос, который вы используете? Запрос, который вы разместили, имеет 3 столбца в списке выбора, но только один в группе по – Aleksej

ответ

2

Первая строка вашего изменения запроса к

select cat_name, sum(cat) as cat, sum(total) as total 
+0

Большое вам спасибо mr.JPG, он работает –

1

Пожалуйста, попробуйте это:

select cat_name,sum(cat) as cat,sum(total) as total 
    from 
    (SELECT a.category_name as cat_name, 
    count(a.category_name) as cat, 
    sum(b.position) as total 
    FROM erom.category a, erom_kmch.nsdl b 
    WHERE a.bene_type_nsdl = b.bene_type 
    AND 
    a.bene_stype_nsdl= b.bene_stype 
    And 
    b.date ='2016-07-22' group by cat_name 
    UNION all 
    SELECT a.category_name as cat_name, 
    count(a.category_name) as cat, 
    sum(b.shares) as total 
    FROM erom.category a, erom_kmch.cdsl b 
    WHERE a.type_cdsl = b.type 
    AND 
    a.bo_substat_cdsl= b.bo_substat 
    And 
    b.date ='2016-07-22' group by cat_name 
    UNION all 
    SELECT a.category_name as cat_name, 
    count(a.category_name) as cat, 
    sum(b.shares) as total 
    FROM erom.category a, erom_kmch.member_member_master b 
    WHERE a.substatus_phy = b.substatus 
    And 
    b.date ='2016-07-22' And shares > '0' group by cat_name) 
    c group by cat_name 

Вы должны суммировать в основном запросе также

+0

Большое вам спасибо mr.robinbansalsolutions, он работает –

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