我目前有两条select命令,如下所示。我想要做的是将结果一起添加到SQL查询中,而不是代码中的变量。如何在同一查询中添加两条select命令的结果
select sum(hours) from resource;
select sum(hours) from projects-time;
是否有可能在同一个SQL中输出两个结果的总和?
我目前有两条select命令,如下所示。我想要做的是将结果一起添加到SQL查询中,而不是代码中的变量。如何在同一查询中添加两条select命令的结果
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
我喜欢这个解决方案,因为它适用于加法和减法 – csharpsql 2017-08-09 11:09:47
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
不是大部分,但所有':)' – 2013-03-01 03:14:19
@JW .:谨慎因为我不知道*全部* .. :) – 2013-03-01 03:15:06
重复多个聚合li柯 SELECT SUM(数量)从TOTAL_AMOUNT( SELECT量TABLE_1 UNION ALL SELECT 量TABLE_2 UNION ALL SELECT 从ASSURED_SUM 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
不错的工作。感谢那。 – Rhys 2013-03-01 03:12:33
不客气':D' – 2013-03-01 03:13:47
什么是最后的?这是一个错字吗? – Rhys 2013-03-01 03:14:39