現在、以下の2つの選択コマンドがあります。私がやりたいのは、コード内の変数ではなく、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
は、構文エラーを避けるために区切る必要があります。区切り記号は、使用しているRDBMSによって異なります。
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
andの両方が必要な場合、サブクエリは便利です。
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
1回、1回集約:
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 ....)