2014-10-09 3 views
0

У меня вопрос о oracle SQL. до сих пор у меня этот запрос, и это не работает.Ссылка на другую таблицу с тем же значением ключа

SELECT SUM(MDA.ASSIGNED_QTY * (SELECT MD.WEIGHT FROM MASTER_DRAWING MD WHERE MDA.HEAD_MARK = MD.HEAD_MARK)) TOTALWEIGHT 
FROM MASTER_DRAWING_ASSIGNED MDA 

Прежде всего, я только начинаю изучать оракул, и мне нужно предложение о том, как улучшить код.

моя таблица структура как этот

MASTER_DRAWING, 
HEAD_MARK WEIGHT 
HEAD1  20 
HEAD2  30 

MASTER_DRAWING_ASSIGNED, 
HEAD_MARK ASSIGNED_QTY 
HEAD1  4 
HEAD2  3 

поэтому мой желаемый результат был бы,

HEAD1  80 
HEAD2  90 

будет рассматривать иск лучше в этой ситуации?

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

ответ

0

Если вы хотите иметь ResultSet как вид, а затем создать представление на основе предложенного ответа:

CREATE VIEW v_totalweight 
AS 
SELECT md.HEAD_MARK, 
    md.WEIGHT * mda.ASSIGNED_QTY AS totalweight 
FROM MASTER_DRAWING md 
JOIN MASTER_DRAWING_ASSIGNED mda 
ON md.HEAD_MARK = mda.HEAD_MARK 
/

И запрос,

SELECT * FROM v_totalweight; 
0

Использование Ниже запроса

SELECT MDraw.HEAD_MARK,MDraw.[WEIGHT]*MDrawAss.ASSIGNED_QTY 
FROM MASTER_DRAWING MDraw 
LEFT JOIN MASTER_DRAWING_ASSIGNED MDrawAss ON MDraw.HEAD_MARK=MDrawAss.HEAD_MARK 
Смежные вопросы