Rhy*_*hys 26 sql sqlite select
我目前有两个选择命令,如下所示.我想要做的是在SQL查询中添加结果而不是代码中的变量.
select sum(hours) from resource;
select sum(hours) from projects-time;
Run Code Online (Sandbox Code Playgroud)
是否可以在同一个SQL中同时输出两个结果的总和?
Joh*_*Woo 55
是.有可能的:D
SELECT SUM(totalHours) totalHours
FROM
(
select sum(hours) totalHours from resource
UNION ALL
select sum(hours) totalHours from projects-time
) s
Run Code Online (Sandbox Code Playgroud)
作为旁注,projects-time
必须分隔表名以避免语法错误.分隔符符号因您使用的RDBMS而异.
Gor*_*off 26
像这样简单的东西可以使用select
子句中的子查询来完成:
select ((select sum(hours) from resource) +
(select sum(hours) from projects-time)
) as totalHours
Run Code Online (Sandbox Code Playgroud)
对于这样的简单查询,这样的子选择是合理的.
在某些数据库中,您可能必须添加from dual
要编译的查询.
如果要单独输出每个:
select (select sum(hours) from resource) as ResourceHours,
(select sum(hours) from projects-time) as ProjectHours
Run Code Online (Sandbox Code Playgroud)
如果你想要两者和总和,子查询很方便:
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
Run Code Online (Sandbox Code Playgroud)
Erw*_*ter 11
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
Run Code Online (Sandbox Code Playgroud)