选择要转换的查询并计算错误

时间:2016-12-15 17:39:44

标签: sql tsql

所以,我有这个查询,我想知道为什么我收到错误。我找不到任何可疑的东西:

SELECT CAST(((COUNT(FileSize) * 100.0) / (SELECT NULLIF(COUNT(*), 0) FROM InfoFile))
AS DECIMAL(10, 2)) AS[Percentage(%)]

错误是:

  

列名称无效' FileSize'。

所以你知道为什么会这样吗?

1 个答案:

答案 0 :(得分:0)

因为FROM子句在子查询中,所以无法识别列名。

据推测,你打算这样:

SELECT (COUNT(FileSize) * 100.0) / NULLIF(COUNT(*), 0) AS[Percentage(%)]
FROM InfoFile;

实际上,另一种方法是:

select avg(case when filesize is not null then 100.0 else 0 end) as Percentage
from infoFile;