SQL 在 Oracle 查询中减去两个数字列值
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/38680307/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-01 04:45:09 来源:igfitidea点击:
Subtract two numeric column values in Oracle query
提问by Charles Bretana
I need to subtract two column values and display the output column in select query.
我需要减去两列值并在选择查询中显示输出列。
SELECT c.name,
(SELECT SUM(p.qty*s.price)
FROM stock s, purchase p
WHERE s.company = p.company
GROUP BY p.company)
MINUS
(SELECT SUM(p.price*p.qty)
FROM stock s, purchase p
WHERE s.company = p.company
GROUP BY p.company) AS "Profit/Lost"
FROM purchase p, client c, stock s
WHERE s.company = p.company
AND c.clno = p.clno
GROUP BY p.company;
But it will display an error. How to solve?
但它会显示错误。怎么解决?
回答by Charles Bretana
First subquery needs an Alias.
第一个子查询需要一个别名。
but why use subquery at all? Is this what you want?
但是为什么要使用子查询呢?这是你想要的吗?
SELECT c.name, p.company,
SUM(p.qty*s.price) - SUM(p.price*p.qty) roe
FROM client c
join purchase p on p.clno = c.clno
join stock s on s.company = p.company
GROUP BY c.name, p.company;