为什么这个查询需要参数?

hug*_*dan 6 sql ms-access

我在MS Access中有以下SQL查询.我正在尝试按标记为"响应"的列中包含的表达式的结果对输出进行排序.我的问题是,当我运行查询时,Access会提示我输入Response的参数值.我尝试输入零和一,看看会发生什么.查询在这些情况下运行,但排序顺序错误.有人可以向我解释为什么这个查询需要一个参数?难道我做错了什么?

SELECT Market,
       Sum(Calls) AS SumOfCalls,
       Sum([A25-54 IMPs] * 1000) AS Impressions,
       Round(SumOfCalls/Impressions, 6) AS Response
FROM DRTV_CentralOnly
WHERE [Creative]<>'#N/A'
GROUP BY Market
ORDER BY Response Desc;
Run Code Online (Sandbox Code Playgroud)

Tar*_*ryn 4

它不需要参数。问题是您在某一Response列中使用了列别名。您需要使用实际的计算。

SELECT Market
    , Sum(Calls) AS SumOfCalls
    , Sum([A25-54 IMPs] * 1000) AS Impressions
    , Round(Sum(Calls)/Sum([A25-54 IMPs] * 1000), 6) AS Response
FROM DRTV_CentralOnly
WHERE [Creative]<>'#N/A'
GROUP BY Market
ORDER BY 4 Desc;
Run Code Online (Sandbox Code Playgroud)

  • +1 不过,我会更改排序表达式:`ORDER BY 4 DESC` (3认同)