現在、以下のように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
と合計の両方が必要な場合は、サブクエリが便利です。
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
)