Как добавить результаты двух команд select в одном запросе

В настоящее время у меня есть две команды выбора, как показано ниже. Мне хотелось бы добавить результаты в SQL-запрос, а не в переменные в коде.

select sum(hours) from resource; select sum(hours) from projects-time; 

Можно ли иметь как в одном SQL, так и вывести сумму обоих результатов?

Да. Возможно :D

 SELECT SUM(totalHours) totalHours FROM ( select sum(hours) totalHours from resource UNION ALL select sum(hours) totalHours from projects-time ) s 

В качестве побочного элемента, projects-time tablename projects-time должны быть разделены, чтобы избежать синтаксической ошибки. Символы разделителя различаются для используемой СУБД.

Что-то простое, как это, можно сделать с помощью подзапросов в предложении select :

 select ((select sum(hours) from resource) + (select sum(hours) from projects-time) ) as totalHours 

Для такого простого запроса, как этот, такой подзапрос является разумным.

В некоторых базах данных вам может потребоваться добавить from dual для компиляции запроса.

Если вы хотите выводить каждый отдельно:

 select (select sum(hours) from resource) as ResourceHours, (select sum(hours) from projects-time) as ProjectHours 

Если вам нужны обе и сумма, подзапрос удобен:

 select ResourceHours, ProjectHours, (ResourceHours+ProjecctHours) as TotalHours from (select (select sum(hours) from resource) as ResourceHours, (select sum(hours) from projects-time) as ProjectHours ) t 

UNION ALL один раз, агрегировать один раз:

 SELECT sum(hours) AS total_hours FROM ( SELECT hours FROM resource UNION ALL SELECT hours FROM "projects-time" -- illegal name without quotes in most RDBMS ) x 

Повторите для нескольких агрегатов, таких как SELECT sum (AMOUNT) AS TOTAL_AMOUNT FROM (SELECT AMOUNT FROM table_1 UNION ALL SELECT AMOUNT FROM table_2 UNION ALL SELECT ASSURED_SUM FROM table_3 ….)

Если вы хотите использовать несколько операций

 select (sel1.s1+sel2+s2) (select sum(hours) s1 from resource) sel1 join (select sum(hours) s2 from projects-time)sel2 on sel1.s1=sel2.s2