mysql: добавление к Sum() двух разных таблиц

Есть две отдельные таблицы с несколькими записями (строками), которые нам нужно сложить (суммировать), чтобы сформировать одно значение.

Приведенный ниже запрос дает мне 2 разных значения при возврате, я хочу просто добавить 2 вместе, чтобы сформировать 1 значение. Любая помощь приветствуется.

select sum(t1.netAmount) 
      from tbl_one t1 where userid = 4033 and date > '2014-09-01'
    Union All
    select sum(t2.netAmount) 
      from tbl_two t2 where userid = 4033 and date > '2014-09-01'

Структуры таблиц ниже

tbl_one
userid   |   netAmount   |   date
---------------------------------
4033     |   20          | 2014-09-02 12:00:00
4033     |   -20         | 2014-09-02 12:01:00
4033     |   40          | 2014-09-02 12:02:00


tbl_two
userid   |   netAmount   |   date
---------------------------------
4033     |   05          | 2014-09-03 12:00:00
4033     |   -100        | 2014-09-03 12:01:00
4033     |   12          | 2014-09-03 12:02:00

Получение истинной суммы по обеим таблицам для 4033 даст -43 (40 + -83)


person timw07    schedule 01.10.2014    source источник


Ответы (1)


Я не знаю, как выглядит ваша база данных, поэтому это не проверено, но что-то вроде этого должно работать:

SELECT SUM(netAmount) FROM (
  SELECT netAmount FROM tbl_one WHERE userid = 4033 AND `date` > "2014-09-01"
  UNION ALL
  SELECT netAmount FROM tbl_two WHERE userid = 4033 AND `date` > "2014-09-01"
) x
person miken32    schedule 01.10.2014
comment
Это дает # 1248 - Каждая производная таблица должна иметь свой собственный псевдоним. Я добавлю некоторые подробности о структуре таблицы в исходный вопрос. - person timw07; 02.10.2014
comment
Вы помните, что x в конце? - person miken32; 02.10.2014
comment
SELECT sum(netAmount) FROM ( SELECT sum(netAmount) as netAmount FROM tbl_one WHERE userid = 4033 AND date › 2014-09-01 UNION ALL SELECT sum(netAmount) as netAmount FROM tbl_two WHERE userid = 4033 AND date › 2014-09- 01 ) х - person timw07; 02.10.2014