Sql 如何从两个不同的表中选择两列的差异并计算百分比

Sql 如何从两个不同的表中选择两列的差异并计算百分比,sql,sql-server,postgresql,Sql,Sql Server,Postgresql,我需要在最终结果中列出四列。收入、成本、利润和利润占收入的百分比。我已经从两个不同的表中选择了收入和成本,并将它们内部联接起来,因此如何计算利润(收入减去成本),以及利润占收入的百分比(利润除以收入)。 我假设代码应该是这样的 SELECT t.revenue, s.cost, (SELECT t.revenue minus SELECT s.cost) "profit", (("profit"/t.revenue)*100.00) AS "Q%" FROM t INNER JOIN

我需要在最终结果中列出四列。收入、成本、利润和利润占收入的百分比。我已经从两个不同的表中选择了收入和成本,并将它们内部联接起来,因此如何计算利润(收入减去成本),以及利润占收入的百分比(利润除以收入)。 我假设代码应该是这样的

SELECT
  t.revenue,
  s.cost,
  (SELECT t.revenue minus SELECT s.cost) "profit", (("profit"/t.revenue)*100.00) AS "Q%"
FROM t
INNER JOIN s
ON t.store = s.store

这是正确的吗?

不,这是不正确的。但几乎不错:-)

对于此查询,您可以使用“内部联接”或“Where”子句:

使用Where子句

使用内部联接


首先重写
SELECT t.revenue减去SELECT s.cost
as
t.revenue-s.cost
请删除不相关的产品标签!
SELECT t.revenue
,      s.cost
,      t.revenue - s.cost   "profit"
,      ((t.revenue - s.cost)/t.revenue)*100.00 AS "Q%"
FROM t
INNER JOIN s
ON t.store = s.store
SELECT t.revenue, s.cost, (t.revenue - s.cost) AS profit,
        (((t.revenue - s.cost)/t.revenue)*100.00) AS "Q%"
FROM t, s
where t.store = s.store
SELECT t.revenue, s.cost, (t.revenue - s.cost) AS profit,
        (((t.revenue - s.cost)/t.revenue)*100.00) AS "Q%"
FROM t
INNER JOIN s
ON t.store = s.store