引用具有相同键值的另一个表

时间:2014-10-09 07:12:29

标签: sql oracle

我有一个关于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

首先,我刚刚开始学习oracle,我需要有关如何改进代码的建议。

我的表结构是这样的

MASTER_DRAWING,
HEAD_MARK WEIGHT
HEAD1     20
HEAD2     30

MASTER_DRAWING_ASSIGNED,
HEAD_MARK ASSIGNED_QTY
HEAD1     4
HEAD2     3

所以我想要的结果是,

HEAD1     80
HEAD2     90
在这种情况下,

会更好地看待诉讼吗?

提前致谢

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

如果要将结果集作为视图,请根据建议的答案创建视图:

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;