我正在尝试在我的应用中完成项目的百分比。百分比将由插件显示,但插件需要SQL命令来运行查询并进行计算。
基本上,项目将为用户分配里程碑。每个里程碑都有一个字段标记为完整。
里程碑和与此里程碑相关的字段(里程碑ID,状态,截止日期等)都写入此表:eba_proj_status_ms。状态包括以下值:已分配,正在进行,已完成。
我希望插件显示的是,特定项目标记为“已完成”的里程碑数的百分比。因此,一旦所有里程碑都标记完成,插件应显示100%。因为它是针对特定项目的,所以我知道需要合并的where子句。我只需要根据有多少“已完成”条目来计算百分比。
我没有开发人员背景,因为我使用SQL平台来构建此应用程序。任何帮助都会很棒,谢谢!
答案 0 :(得分:1)
这是一次尝试:
select 100.0*count(case when status = 'Completed' then 1 end)
/ count(1) as pctComplete
from eba_proj_status_ms
与@Sam cd相似但没有子选择
答案 1 :(得分:0)
您没有指定您正在使用的SQL风格。这适用于T-SQL。
一种快速而肮脏的方法是声明2个变量以获得已完成任务的数量,然后获得总任务。然后选择已完成/总计。这将给你一个十进制格式(0.50而不是50% - 你可以乘以100,如果你需要它返回50而不是0.50)
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)
答案 2 :(得分:0)
基本上@Tingo说的是没有变数:
select
((select COUNT(*) from eba_proj_status_ms WHERE [status] = 'Completed') /
COUNT(*) as PctComplete) * 100
from eba_proj_status_ms