我有一个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%而不是一行。为什么这样显示?感谢
答案 0 :(得分:0)
您使用内联查询的方式是,您正在执行外部查询的相同查询每行。因此,如果您的表有六行,您将执行六次(并自然地为每个查询获得相同的结果)。您可以通过删除外部查询并使用iif
表达式来简化操作:
SELECT SUM (IIF (SurgeryDate Between #1/1/2011# And #12/31/2012#, 1, 0)) /
COUNT(ThyroidSurgeryType) AS Percentage
FROM [Thyroid Surgeries];