Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 在Oracle查询中减去两个数字列值_Sql_Oracle - Fatal编程技术网

Sql 在Oracle查询中减去两个数字列值

Sql 在Oracle查询中减去两个数字列值,sql,oracle,Sql,Oracle,我需要减去两列值并在select查询中显示输出列 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.comp

我需要减去两列值并在select查询中显示输出列

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;

但它将显示一个错误。如何解决?

第一个子查询需要别名

但为什么要使用子查询呢? 这是你想要的吗

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;

您的查询有太多问题,没有地方可以开始。你应该提供样本数据和期望的结果。你混淆了
减号的作用;它删除多组行;听起来您只需要两列的算术
-
。但戈登是对的;我们需要样品数据和样品所需的输出。谢谢。类似的东西。