SQL:如何从两个不同的查询中减去两个SUM()函数的结果
所以我有这个[数据库的结构] 我必须对所有购买的物品进行统计,减去那些没有购买特定类别“PANADERIA”食品的人购买的每一件物品 问题是我知道如何得到两个疗养院,但我找不到减去它们的方法 有了这句话,我得到了每一件购买物品的消费:SQL:如何从两个不同的查询中减去两个SUM()函数的结果,sql,oracle,Sql,Oracle,所以我有这个[数据库的结构] 我必须对所有购买的物品进行统计,减去那些没有购买特定类别“PANADERIA”食品的人购买的每一件物品 问题是我知道如何得到两个疗养院,但我找不到减去它们的方法 有了这句话,我得到了每一件购买物品的消费: SELECT SUM(CO.CANTIDAD) FROM CLIENTE CL JOIN COMPRA CO ON CO.DNI = CL.DNI 这样,我就得到了其他类别中的Summary,CATEGORIA不是“PANADERIA”: SELECT SUM
SELECT SUM(CO.CANTIDAD)
FROM CLIENTE CL
JOIN COMPRA CO ON CO.DNI = CL.DNI
这样,我就得到了其他类别中的Summary,CATEGORIA不是“PANADERIA”:
SELECT SUM(CO.CANTIDAD)
FROM CLIENTE CL
JOIN COMPRA CO ON CO.DNI = CL.DNI
JOIN PRODUCTO PR ON PR.IDP = CO.IDP
JOIN CATEGORIA CA ON CA.IDC = PR.IDC
WHERE CA.CATEGORIA = 'PANADERIA'
在这种情况下,现在的结果是(58-5),但我想自动计算它如果两个查询都已经给出了您想要的结果,只需将它们包装到另一个
选择
试试这个:
SELECT (
(
SELECT SUM(CO.CANTIDAD)
FROM CLIENTE CL
JOIN COMPRA CO ON CO.DNI = CL.DNI
)
-
(
SELECT SUM(CO.CANTIDAD)
FROM CLIENTE CL
JOIN COMPRA CO ON CO.DNI = CL.DNI
JOIN PRODUCTO PR ON PR.IDP = CO.IDP
JOIN CATEGORIA CA ON CA.IDC = PR.IDC
WHERE CA.CATEGORIA = 'PANADERIA'
)
)
你能帮我标记一下数据库吗?上面说我实际上需要使用关键字FROM。所以我把它和一个随机表放在一起,然后我得到5行,然后在SELECT之后的句子开头添加distinct,它就工作了。现在我只得到一行数字53。您没有发布RDBMS,其中一些不需要来自的
。MySQL:SELECT((选择(5*2)作为'A')-(选择(2+3)作为'A'))
工作正常。但是,是的,你的变通方法可能会对这里有所帮助。对不起,伙计,这是我第一次来stackoverflow寻求帮助。无论如何,非常感谢。没问题。。。很高兴我帮助你走上了正确的道路。