2017-01-30 3 views
0

Я не уверен, что это возможно, но я пытался вычислить результат двух результатов SUM (CASE ...), чтобы иметь возможность рассчитать Процент завершения для каждого цикла обновления.Можно ли вычислить из столбцов SUM?

его немного сложнее ...

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; 

который получает меня этот результат


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 

я получаю немного потеряли в этом, так как я на самом деле не найти аналогичный запрос в Интернете. Может кто-то указать мне верное направление?

ответ

0

попробовать этот подход

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

В настоящее время сервер 2008 обыкновение позвольте мне использовать столбцы я, созданные с суммами для повторного использования в новой суммы для расчета% Completed с использованием Заполненная и Всего в новой колонке. – GhislainJC

+0

Будет, если вы действительно попробуете то, что я предлагаю. –

Смежные вопросы