2016-12-14 4 views
0

Я пытаюсь выяснить, сколько мы приняли за входные билеты.Присоединяйтесь к двум отборочным заявлениям

У меня есть два отдельных запроса, возвращающих значения, но я нуждаюсь в них как один вместо двух отдельных запросов.

SELECT SUM(ENTRY) AS TOTAL1 FROM MONEY 

SELECT SUM(ENTRY) AS TOTAL1 FROM MONEY2 
+3

Вы пробовали союз? – Fabien

+0

Я дал ему ход, но я считаю, что значения для всех столбцов должны быть одинаковыми. У меня больше столбцов в одном, а затем в другом. Но я не сомневаюсь в вереске. Я сделал этот союз правильно. – thewaleed100

+0

Вам нужно одинаковое количество столбцов (каждая пара столбцов является одним и тем же типом данных), но это легко устранить, включив фиктивные столбцы в select с меньшим количеством столбцов. (например: select '', 0 from dual;) –

ответ

0

мне нужно использовать UNION для получения заявления вместе. Затем использовалось ниже, чтобы получить один номер.

SELECT SUM(X.TOTAL1) from 
(
SELECT SUM(ENTRY) AS TOTAL1 FROM MONEY 
UNION 
SELECT SUM(ENTRY) AS TOTAL1 FROM MONEY2 
) X; 
+0

Осторожно с 'UNION' против' UNION ALL'; если две суммы просто оказываются равными, вы получите неправильный ответ, потому что 'UNION' удаляет дубликаты. – mathguy

0
select sum(entry) as grand_total 
from (select entry from money 
     union all 
     select entry from money2 
    ); 

Суть в том, вы должны использовать UNION ALL; и сколько столбцов каждая таблица не имеет значения, потому что вам не нужно UNION ALL две таблицы (все столбцы от каждого); вам нужно только UNION ALL столбец ENTRY из первой таблицы и столбец ENTRY со второй таблицы.