SQL Запрос не работает с использованием псевдонима, но работает с индексированием - PullRequest
1 голос
/ 23 апреля 2020
SELECT        Product_ID, Product_Name, Purchase_Cost, Quantity_On_Hand, Purchase_Cost*Quantity_On_Hand AS Total_Item_Value
FROM            PRODUCT
ORDER BY 5 DESC

Приведенный выше код работает, но ниже не работает и возвращает эту ошибку.

SELECT        Product_ID, Product_Name, Purchase_Cost, Quantity_On_Hand, Purchase_Cost*Quantity_On_Hand AS Total_Item_Value
FROM            PRODUCT
ORDER BY Total_Item_Value DESC

Ошибка:

Error Message

1 Ответ

1 голос
/ 23 апреля 2020

MS Access в принципе не позволяет повторно использовать псевдонимы где-либо в запросе. Вы можете использовать номер столбца (как вы это сделали), повторить выражение или использовать подзапрос:

SELECT Product_ID, Product_Name, Purchase_Cost, Quantity_On_Hand, Purchase_Cost * Quantity_On_Hand AS Total_Item_Value
FROM   PRODUCT
ORDER BY Purchase_Cost * Quantity_On_Hand DESC

Или:

SELECT *
FROM (
    SELECT Product_ID, Product_Name, Purchase_Cost, Quantity_On_Hand, Purchase_Cost * Quantity_On_Hand AS Total_Item_Value
    FROM   PRODUCT
) x
ORDER BY Total_Item_Value DESC
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...