Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 可以从总和列计算吗?_Sql_Sql Server 2008_Sum_Percentage - Fatal编程技术网

Sql 可以从总和列计算吗?

Sql 可以从总和列计算吗?,sql,sql-server-2008,sum,percentage,Sql,Sql Server 2008,Sum,Percentage,我不确定这是否可能,但我一直在尝试计算两个SUM(CASE…results)的结果,以便能够计算每个刷新周期的完成百分比 这有点复杂 SELECT RefreshCycle, SUM(CASE WHEN RefreshStatus IN ('In Progress', 'Not Started', 'Not Due') and Status = 'Deployed' THEN 1 ELSE 0 END) + SUM(CASE WHEN RefreshStatus = 'Completed' a

我不确定这是否可能,但我一直在尝试计算两个SUM(CASE…results)的结果,以便能够计算每个刷新周期的完成百分比

这有点复杂

SELECT RefreshCycle,

SUM(CASE WHEN RefreshStatus IN ('In Progress', 'Not Started', 'Not Due') and Status = 'Deployed' THEN 1 ELSE 0 END) + SUM(CASE WHEN RefreshStatus = 'Completed' and Status NOT IN ('Deployed') THEN 1 ELSE 0 END)  as 'Total', 
SUM(CASE WHEN RefreshStatus = 'Completed' and Status NOT IN ('Deployed') THEN 1 ELSE 0 END) as 'Completed', 
SUM(CASE WHEN RefreshStatus = 'In Progress' and Status = 'Deployed' THEN 1 ELSE 0 END ) as 'In Progress', 
SUM(CASE WHEN RefreshStatus = 'Not Started' and Status = 'Deployed' THEN 1 ELSE 0 END) as 'Not Started', 
SUM(CASE WHEN RefreshStatus = 'Not Due' and Status = 'Deployed' THEN 1 ELSE 0 END)  as 'Not Due', 
SUM(CASE WHEN RefreshStatus = 'Not Eligible' and Status = 'Deployed' THEN 1 ELSE 0 END)  as 'Not Eligible'

--('Total') / ('Completed') *100.00 as 'Percentage'

--SUM(CASE WHEN RefreshStatus IN ('In Progress', 'Not Started', 'Not Due') and Status = 'Deployed' THEN 1 ELSE 0 END) + SUM(CASE WHEN RefreshStatus = 'Completed' and Status NOT IN ('Deployed') THEN 1 ELSE 0 END) / SUM(CASE WHEN RefreshStatus = 'Completed' and Status NOT IN ('Deployed') THEN 1 END)* 100.00 as 'Completed' 

FROM Hardware_Inventory 

WHERE Status NOT IN ('In Stock', 'Parts') 
and Manufacturer NOT IN ('Apple') 
and AssetType NOT IN ('Monitor','Docking Station','Optical Drive','Other', 'Projector', 'Scanner/Printer', 'BlackBerry', 'Server') 
GROUP BY RefreshCycle
ORDER BY RefreshCycle asc;
这让我得到了这个结果


这一次我有点迷路了,因为我在网上没有找到类似的查询。有人能给我指出正确的方向吗?

试试这种方法

select total + completed sumOfSums1
from (
sql from question goes here
) derivedTable

目前,server 2008不允许我使用我创建的列以及要在新列中重复使用的总和来计算在新列中使用Completed and Total完成的百分比。如果您真的尝试我的建议,我会这样做。
select total + completed sumOfSums1
from (
sql from question goes here
) derivedTable