0

尝试对每个表具有不同 where 条件的不同表中的多个总和进行求和。

这是我的3个总和:

SELECT SUM(1column2) FROM table1 WHERE 1column1 = '0';
SELECT SUM(1column4) FROM table1 WHERE 1column3 = '0';
SELECT SUM(2column2) FROM table2 WHERE 2column1 = '0' AND 2column3 = 'w' AND 2column4 != 'f';

结果需要(first sum) - (second sum) - (third sum)

4

2 回答 2

3

MySQL 支持基本运算符,因此您应该能够执行以下简单操作:

SELECT (SELECT SUM(1column2) FROM table1 WHERE 1column1 = '0') - (SELECT SUM(1column4) FROM table1 WHERE 1column3 = '0') - (SELECT SUM(2column2) FROM table2 WHERE 2column1 = '0' AND 2column3 = 'w' AND 2column4 != 'f');

我确信这可以优化,但这应该会给你你需要的东西(如果没有更好的关系信息,优化会很困难)。

于 2012-05-10T17:20:51.820 回答
1

您可以将这些查询中的每一个作为执行所需求和的外部查询的子查询:

SELECT
    (SELECT SUM(1column2) FROM table1 WHERE 1column1 = '0')
  - (SELECT SUM(1column4) FROM table1 WHERE 1column3 = '0')
  - (SELECT SUM(2column2) FROM table2 WHERE 2column1 = '0' 
      AND 2column3 = 'w' AND 2column4 != 'f');
于 2012-05-10T17:19:16.003 回答