我正在尝试在我的应用程序中获得一个项目的完成百分比。百分比将由插件显示,但是该插件需要SQL命令来运行查询和计算。
基本上,一个项目会有一个分配给用户的里程碑。每个里程碑都将有一个字段将其标记为完成。
里程碑和与此里程碑相关的字段(里程碑ID、状态、到期日等)都写入此表: eba_proj_status_ms。状态包括以下值:已分配、正在进行、已完成。
我想要的插件显示的是,有多少里程碑被标记为“完成”的特定项目的百分比。因此,一旦所有里程碑都被标记为完成,插件应该会显示100%。因为它是针对特定项目的,所以我知道需要合并的where子句。我只需要帮助计算百分比的基础上有多少个“完成”的项目。
我没有开发人员的背景,因为我使用SQL平台来构建此应用程序。任何帮助都会很棒,谢谢!
发布于 2015-07-14 04:11:26
这里有一个尝试:
select 100.0*count(case when status = 'Completed' then 1 end)
/ count(1) as pctComplete
from eba_proj_status_ms 与@Sam cd类似,但没有子选择
发布于 2015-07-14 04:04:04
您没有指定您正在使用哪种风格的SQL。这是针对T-SQL的。
一种又快又脏的方法是声明2个变量来获取已完成任务的数量,然后获取总任务数。然后选择已完成/总计。这将给你一个小数格式(0.50而不是50% -如果你需要返回50而不是0.50,你可以乘以100 )
DECLARE @total INT
DECLARE @completed INT
SELECT @total = count(*) FROM eba_proj_status_ms
SELECT @completed = count(*) FROM eba_proj_status_ms WHERE [status] = 'Completed'
SELECT @completed / CAST(@total AS float)发布于 2015-07-14 04:06:29
基本上就是@Tingo所说的,但没有变量:
select
((select COUNT(*) from eba_proj_status_ms WHERE [status] = 'Completed') /
COUNT(*) as PctComplete) * 100
from eba_proj_status_ms https://stackoverflow.com/questions/31392271
复制相似问题