【发布时间】:2014-12-18 22:35:49
【问题描述】:
我正在尝试使用另一个包含产品材料和该材料数量的表格来更新我的产品价格
我的表是 produkt (PRODUKTID int, NAZOV varchar(47), VYROBNA_CENA int)
表格材料(MATERIALID int,CENA numeric);
表 zlozenie (PRODUKTKID int, MATERIALID int, MNOZSTVO int);
我要做的是将 sum(ZLOZENIE.MNOZSTVO*MATERIAL.CENA) 放入列VYROBNA_CENA
我有两个选择返回相同的列,但我不确定如何使用更新将值从一个传输到另一个
第一个 - 计算的产品价格
select PRODUKT.NAZOV as NAZOV, sum(ZLOZENIE.MNOZSTVO*MATERIAL.CENA) as celkova
from MATERIAL, PRODUKT, ZLOZENIE
where ZLOZENIE.MATERIALID=MATERIAL.MATERIALID
and PRODUKT.PRODUKTID=ZLOZENIE.PRODUKTKID
group by PRODUKT.NAZOV
order by PRODUKT.NAZOV
第二个是价格为空的表格产品(cena),我想将 sum 的结果放入 cena 列
select PRODUKT.NAZOV, PRODUKT.vyrobna_cena
from PRODUKT
order by PRODUKT.NAZOV
sql 摆弄表和查询http://sqlfiddle.com/#!2/e183f/2
谢谢
【问题讨论】:
-
@benji 请注意这篇文章是oracle,你的链接是sql server。可能有更具体的方法来处理这个基于平台。此外,您的链接没有显示如何处理聚合。
-
@paqogomez 但它不是同一个概念吗?
update table set column = subquery? -
@benji - 相同的概念,但 Oracle 不支持 UpDATE 中的 INNER JOIN 语法(尽管如果支持它会非常整洁)
标签: sql oracle sql-update