Sql 如何准确计算有限总数的百分比
我正在创建一个报告,该报告将告诉最终用户在给定的一个月内完成的gridview记录总数占有限记录数的百分比。我有一个gridview,其中包含我导入的记录,用户必须进入每个记录并更新几个字段。我试图创建一个报告,告诉我在给定的一个月内完成记录总数的百分比。我只需要百分比。这个例子的总数是2000。 我不确定这里是否需要实际的gridview信息/代码,但如果需要,请告诉我,我会添加它。 问题是,我已经能够计算总百分比,但是当它显示时,表中的每一行都会重复总百分比。我正在琢磨如何使这个结果只出现一次。 下面是我使用nvarchar的SQL代码,因为我们从许多非windows系统导入,并在信息中添加了各种额外字符和空格: 假设在本例中,12月份输入的日期记录中的记录总数为500。 我已经分别尝试了较小的代码块,但没有成功。这是我最近试过的一件事。 我知道我遗漏了一些简单的东西,但我不确定是什么 ::编辑::Sql 如何准确计算有限总数的百分比,sql,sql-server,gridview,sql-server-2012,Sql,Sql Server,Gridview,Sql Server 2012,我正在创建一个报告,该报告将告诉最终用户在给定的一个月内完成的gridview记录总数占有限记录数的百分比。我有一个gridview,其中包含我导入的记录,用户必须进入每个记录并更新几个字段。我试图创建一个报告,告诉我在给定的一个月内完成记录总数的百分比。我只需要百分比。这个例子的总数是2000。 我不确定这里是否需要实际的gridview信息/代码,但如果需要,请告诉我,我会添加它。 问题是,我已经能够计算总百分比,但是当它显示时,表中的每一行都会重复总百分比。我正在琢磨如何使这个结果只出现一
作为查询的预期结果,我希望在给定的一个月内修改记录的百分比。如果做了500个记录,那将是25%。我只想让25和training小数在应用时显示一次,而不是在表中每行显示25。为什么选择常量值castround@divNumber/@DateCount,1为表中的小数点5,1?这就是你问题的原因。
我对sql server不太熟悉,但您可以尝试在不使用from子句的情况下进行选择。以下查询应提供您要查找的内容:
Declare @DivNumber decimal(5,1);
SET @DivNumber = (.01 * 2541);
SELECT
CAST(ROUND(@DivNumber / Count(date_record_entered), 1) AS decimal(5,1))
FROM dbo.tablename
WHERE date_record_entered IS NOT NULL
and date_record_entered >= 20131201
AND date_record_entered <= 20131231
您能否提供数据示例和查询的预期结果?您具体在@wdosanjos中寻找什么?dbo.tablename表中的一些示例行和SELECT语句中的预期结果。一旦我有了这些信息,我可以尝试提供一个解决方案。更新了这个帖子的第一篇文章。就这样做了。在这件事上我完全是在打转。谢谢
Declare @DivNumber decimal(5,1);
SET @DivNumber = (.01 * 2541);
SELECT
CAST(ROUND(@DivNumber / Count(date_record_entered), 1) AS decimal(5,1))
FROM dbo.tablename
WHERE date_record_entered IS NOT NULL
and date_record_entered >= 20131201
AND date_record_entered <= 20131231
select emp.Natinality_Id,mstn.Title as Nationality,count(emp.Employee_Id) as Employee_Count,
count(emp.Employee_Id)* 100.0 /nullif(sum(count(*)) over(),0) as Nationality_Percentage
FROM Employee as emp
left join Mst_Natinality as mstn on mstn.Natinality_Id = emp.Natinality_Id
where
emp.Is_Deleted='false'
group by emp.Natinality_Id,mstn.Title