[英]is it possible to calculate from SUM Columns?
i'm not sure if this is even possible but I've been trying to calculate the result of two SUM(CASE... results to be able to calculate the Percentage of completion for each refresh cycle. 我不确定这是否可能,但我一直在尝试计算两个SUM(CASE ...)的结果,以便能够计算每个刷新周期的完成百分比。
its a bit complicated... 这有点复杂...
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;
which gets me this result 这给我这个结果
RefreshCycle Total Completed In Progress Not Started Not Due Not Eligible
2008/09 38 38 0 0 0 3
2009/10 236 236 0 0 0 8
2010/11 263 263 0 0 0 4
2011/12 192 192 0 0 0 3
2012/13 1350 1349 0 1 0 40
2013/14 1828 1815 0 13 0 63
2014/15 1219 1160 0 59 0 314
2015/16 1866 1658 0 208 0 355
2016/17 696 397 0 299 0 189
2017/18 2782 9 0 0 2773 198
2018/19 1472 5 0 1 1466 185
2019/20 1107 0 0 0 1107 41
2020/21 2160 0 0 2 2158 125
2021/22 421 0 0 4 417 32
i'm getting a bit lost in this one since i'm not really finding similar query's on the internet. 由于我在互联网上找不到真正的类似查询,因此我对此一无所知。 can anyone point me in the right direction? 谁能指出我正确的方向?
Try this approach 试试这个方法
select total + completed sumOfSums1
from (
sql from question goes here
) derivedTable
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.