在Access中执行此查询时,为什么要求参数?

时间:2015-01-15 00:50:30

标签: sql ms-access count percentage

我在Management Studio中创建了一个查询,查看表格中的类型,并计算出类型总量中的百分比。这在Management Studio中非常有用,但是当我在Access中粘贴代码时,会弹出一个框,询问表达式百分比的参数。
  我应该在代码中编辑什么才能使其适合Access?

SELECT genre_name, 
    COUNT(*) AS aantal, 
    (COUNT(*)*1.0 / (select COUNT(genre_name) from movieGenre)) * 100 as percentage
FROM movieGenre
GROUP BY genre_name
ORDER BY percentage DESC

当我想用另一个查询除以Count(*)时,我猜猜Access不喜欢它   以下是我在Management Studio中获得的内容,我也想在Access中实现:

Genres | Percentage
Action | 45%
Comedy | 35%
Drama  | 20%

2 个答案:

答案 0 :(得分:1)

我不认为Access支持通过表达式进行排序(虽然我可能错了)但你应该能够将你的查询用作派生表,然后像这样按百分比进行排序:

SELECT * FROM (
  SELECT 
    movieGenre.genre_name, 
    Count(*) AS aantal, 
    (Count(*)*1/(select COUNT(genre_name) from movieGenre))*100 AS percentage
  FROM movieGenre
  GROUP BY movieGenre.genre_name
  ) subquery
ORDER BY percentage DESC

答案 1 :(得分:0)

正如jpw所回答的那样,可能不允许使用计算列,但您也可以尝试通过查询的ORDINAL列进行排序..例如“order by 2 desc”