我有一个关于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
在这种情况下,会更好地看待诉讼吗?
提前致谢
答案 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;