Вывод двух разных запросов как один результат в oracle - PullRequest
0 голосов
/ 08 марта 2020

У меня есть две разные таблицы, и я хочу получить эти две разные результаты в одном результате. Здесь я хочу отобразить результаты обоих запросов в одном отчете.

Запрос 1

Select name, sum(purchasqty)-sum (soldqty) as pending 
from (select p.name, p.qty as purchasqty, s.qty as soldqty 
      from purchase p 
      left join sold s on p.id = s.id ) 
group by name;

Запрос 2

Select name, sum(qty) as damage 
from purchase p 
where con = 'c' 
group by name

Ответы [ 2 ]

0 голосов
/ 08 марта 2020

Это немного сложно, потому что вы, кажется, агрегируете на уровне, отличном от того, на котором вы присоединяетесь. Я бы порекомендовал:

select p.name, (p.purchasqty - coalesce(ps.soldqty, 0) as pending ,
       p.damage
from (select p.name, sum(qty) as purchase_qty,
             sum(case when con = 'c' then qty else 0 end) as damage
      from purchase p
      group by p.name
     ) p left join
     (select p.name, sum(s.qty) as soldqty 
      from purchase p join
           sold s
           on p.id = s.id
      group by p.name
     ) ps
     on ps.name = p.name;
0 голосов
/ 08 марта 2020

Это будет делать

Select name, sum(purchasqty)-sum (soldqty) as pending, '' as damage 
from (select p.name, p.qty as purchasqty, s.qty as soldqty 
      from purchase p 
      left join sold s on p.id = s.id ) 
group by name
union all 
Select name, '' as pending,  sum(qty) as damage 
from purchase p 
where con = 'c' 
group by name
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...