查询部门百分比和部门为2的总数

来源:互联网 发布:域名证书 备案 编辑:程序博客网 时间:2024/05/20 01:36
Declare @DepartID int;Declare @Alltotal int;  
Select  @DepartID=Count(*) From Emp_Base where DepartID=2 select @Alltotal=Count(*) from emp_base  
SELECT  SUM(@DepartID) AS DepartIDCount, SUM(@Alltotal) AS Alltotal, CAST(CONVERT (float, SUM(@DepartID)) * 100 / CONVERT (float, SUM(@Alltotal))  
AS decimal(38 , 2)) AS 百分比,Count(*)*400/@Alltotal as 长度 FROM Emp_Base where DepartID=2 Group By DepartID

就是不知道为什么我查询出来的@DepartID为什么为原有数据的二次方,比如我查询的DepartID=2的总数为8人,但是查询结果为16人,怎么回事,这个语句不是多表查询阿,就一个表,求解!!


分析:

Declare @DepartID int;Declare @Alltotal int;  
Select  @DepartID=Count(*) From Emp_Base where DepartID=2 select @Alltotal=Count(*) from emp_base  
SELECT  SUM(@DepartID) AS DepartIDCount, SUM(@Alltotal) AS Alltotal, CAST(CONVERT (float, SUM(@DepartID)) * 100 / CONVERT (float, SUM(@Alltotal))  
AS decimal(38 , 2)) AS 百分比,Count(*)*400/@Alltotal as 长度 FROM Emp_Base where DepartID=2 Group By DepartID




逻辑有问题
SELECT  count(@DepartID) AS DepartIDCount, count(@Alltotal) AS Alltotal, CAST(CONVERT (float, SUM(@DepartID)) * 100 / CONVERT (float, SUM(@Alltotal))  
AS decimal(38 , 2)) AS 百分比,Count(*)*400/@Alltotal as 长度 FROM Emp_Base where DepartID=2 Group By DepartID
--------------
@DepartID  这个值已经被你group by 附值了,你后面在一次group by sum 那不成倍数才怪。

原创粉丝点击