如何在同一查询中添加两个选择命令的结果

时间:2013-03-01 03:02:54

标签: sql sqlite select

我目前有两个选择命令,如下所示。我想要做的是在SQL查询中添加结果,而不是在代码中添加变量。

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

是否可以在同一个SQL中同时输出两个结果的总和?

5 个答案:

答案 0 :(得分:51)

是。这可能是: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而异。

答案 1 :(得分:25)

这样简单的事情可以使用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

答案 2 :(得分:10)

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

答案 3 :(得分:0)

重复多个聚合,例如 SELECT sum(AMOUNT)AS TOTAL_AMOUNT FROM(        从table_1中选择AMOUNT        UNION ALL        从table_2中选择AMOUNT        UNION ALL        从table_3中选择ASSURED_SUM        .... )

答案 4 :(得分:-1)

如果您想进行多项操作

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