2015-07-31 2 views
0

Я разрабатываю приложение с использованием Oracle в качестве задней части. Я создал две таблицы для записи данных о расходах "exp_mater" & "exp_details".sql-запрос для выбора записей из 2 таблиц

exp_master(parti_id(pk),particulars); 

exp_details(exp_id(pk),parti_id(fk),amount); 

table exp_master 
parti_id|particulars 
--------|----------- 
    1  | incentive 
    2  | papers 
    3  | salary 


table exp_details 
    exp_id|parti_id|amount 
------ |--------| 
e1  | 2  |200 
e2  | 1  |100 
e3  | 2  |1000 

Теперь я хочу, чтобы выбрать нужные записи из обеих таблиц, но из положить должно быть, как:

parti_id | particulars | amount 
--------------|-------------|------- 
    2  |papers  |100 
    1  |incentive |200 
    2  |papers  |100 

Я попытался подзапросы, но я был в состоянии показать только поле частностей и не другие два. Есть ли способ сделать это.

заранее спасибо

+0

показать, что вы пробовали до сих пор. –

+0

Почему вы переводите 'paper' дважды? И почему в выводе есть две строки с количеством '100' для' paper', но данные содержат одну строку с '100' и ​​одну строку с' 1000'? –

ответ

0

Вы можете присоединиться обе таблицы, а затем суммируют количество:

+0

спасибо, что сработало –

0
SELECT m.parti_id, particulars, SUM(amount) AS amount 
FROM  exp_mater m 
Inner JOIN exp_details d ON m.parti_id = d.parti_id 

внутреннее соединение здесь необходима. Благодаря

0

зависит от ваших требований,

SELECT m.parti_id, particulars, SUM(amount) AS amount 
FROM  exp_mater m 
Inner JOIN exp_details d ON m.parti_id = d.parti_id 
Group By m.parti_id, particulars 

или

SELECT m.parti_id, particulars, SUM(amount) AS amount 
FROM  exp_mater m 
LEFT OUTER JOIN exp_details d ON m.parti_id = d.parti_id 
Group By m.parti_id, particulars 
Смежные вопросы