Con*_*ark 7 sql ms-access select sql-order-by
我正在尝试查询检索甜食产品销售额最多的地区.'grupo_produto'是产品类型,'regiao'是该地区.所以我得到了这个问题:
SELECT TOP 1 r.nm_regiao, (SELECT COUNT(*)
FROM Dw_Empresa
WHERE grupo_produto='1' AND
cod_regiao = d.cod_regiao) as total
FROM Dw_Empresa d
INNER JOIN tb_regiao r ON r.cod_regiao = d.cod_regiao ORDER BY total DESC
Run Code Online (Sandbox Code Playgroud)
然后,当我运行查询时,MS-Access会询问"total"参数.为什么它不考虑我在select子句中创建的新"列"?
提前致谢!
Oli*_*i_G 12
旧问题我知道,但它可能有助于某人知道,而不是你不能通过别名订购,你可以按列索引排序.例如,这将无错误地工作:
SELECT
firstColumn,
IIF(secondColumn = '', thirdColumn, secondColumn) As yourAlias
FROM
yourTable
ORDER BY
2 ASC
Run Code Online (Sandbox Code Playgroud)
然后,结果将按第二列中找到的值排序,即Alias"yourAlias".
别名只能在查询输出中使用。您不能在查询的其他部分使用它们。不幸的是,您必须复制并粘贴整个子查询才能使其工作。
小智 6
你可以这样做
select * from(
select a + b as c, * from table)
order by c
Run Code Online (Sandbox Code Playgroud)
Access 与 Sql Server 相比有一些差异。