繁体   English   中英

Oracle SQL返回跨表的多个和

[英]Oracle SQL return sum of multiple across tables

刚接触SQL和IT领域的人并不多,在寻求帮助之前总是做很多工作,但是这次我很沮丧。

我有三个表:

在此处输入图片说明

因此,我尝试通过执行以下操作来更新“ payment_owed”表:对于每个客户,获取food_id和数量,然后使用food_id将数量乘以成本。

到目前为止,我所做的最好的事情就是表格上的自然连接,并尝试对每个ID的数量*成本求和

我对更新特定客户的理解:

update customer
set payment_owed = (select <quantity>) * (select <cost>)
where cust_no = 1;

如果我不在正确的论坛上,或者有更好的地方问这些问题,请告诉我,谢谢您的时间!

只是:

update customer
set payment_owed = (SELECT SUM(o.cost*s.quantity) 
                   FROM order o JOIN session s ON s.food_id = o.food_id         
                   WHERE s.cust_no = customer.cust_no)
where cust_no = 1;

无论如何,每次对表进行更改后,您都将对其进行更新吗? 如何使用像这样的视图:

CREATE VIEW my_view AS
SELECT cust_no, SUM(o.cost*s.quantity) 
FROM order o 
JOIN session s ON s.food_id = o.food_id
GROUP BY cust_no;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM