计算两个"计数的百分比"在Microsoft Access 2010中的SQL中

时间:2014-04-27 05:40:13

标签: sql ms-access-2010

我有一个Microsoft Access 2010甲状腺手术数据库。我有一个查询计算整个数据库中的手术数量。我有第二个查询,计算在某些日期之间执行的手术数量。我使用SQL创建了一个新查询来计算该日期范围内手术的百分比(占手术总数的百分比)。这是代码:

SELECT 
((select count(ThyroidSurgeryType) 
        from [Thyroid Surgeries] 
       HAVING ([Thyroid Surgeries].SurgeryDate) Between #1/1/2011# And #12/31/2012#)/(select count(ThyroidSurgeryType) 
        from [Thyroid Surgeries])) AS Percentage

FROM [Thyroid Surgeries];

我得到.33(然后我将行格式设置为百分比得到33%),但我得到6行33%而不是一行。为什么这样显示?感谢

1 个答案:

答案 0 :(得分:0)

您使用内联查询的方式是,您正在执行外部查询的相同查询每行。因此,如果您的表有六行,您将执行六次(并自然地为每个查询获得相同的结果)。您可以通过删除外部查询并使用iif表达式来简化操作:

SELECT SUM (IIF (SurgeryDate Between #1/1/2011# And #12/31/2012#, 1, 0)) / 
       COUNT(ThyroidSurgeryType) AS Percentage
FROM   [Thyroid Surgeries];