【问题标题】:Why does it ask for a parameter when doing this query in Access?为什么在 Access 中执行此查询时要求输入参数?
【发布时间】:2015-01-15 00:50:29
【问题描述】:

我在 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%

【问题讨论】:

    标签: sql ms-access count percentage


    【解决方案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
    

    【讨论】:

      【解决方案2】:

      根据jpw的回答,可能是不允许计算列,但您也可以尝试按查询的ORDINAL列排序..例如“order by 2 desc”

      【讨论】:

        猜你喜欢
        • 2019-04-02
        • 2011-05-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-09-25
        • 2021-07-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多