이 유형의 요청의 경우 계산을 다시 사용하거나 하위 쿼리를 사용해야합니다.
SELECT ItemID,
ItemType,
Instock,
CASE
WHEN ItemType = 'SP/OR' THEN 'Special Order'
WHEN Instock < '1' THEN 'Out of Stock'
WHEN Instock > '0' THEN 'In Stock'
END AS "Stock"
FROM
(
select ItemID, ItemType, (QuantityOnHand - QuantityonSalesOrders) AS Instock
from peachtree
) p;
또는 :
SELECT ItemID,
ItemType,
(QuantityOnHand - QuantityonSalesOrders) as Instock,
CASE
WHEN ItemType = 'SP/OR' THEN 'Special Order'
WHEN (QuantityOnHand - QuantityonSalesOrders) < '1' THEN 'Out of Stock'
WHEN (QuantityOnHand - QuantityonSalesOrders) > '0' THEN 'In Stock'
END AS "Stock"
FROM peachtree
경우 기반 열이 WHERE 절에 사용하는 경우 당신은
Instock
값을주는 별명이 선택 목록에서 사용할 수 없습니다 때문입니다 ? 행 (인덱스)을 많이 사용하여 실적을 향상시킬 수있는 방법은 없습니까? – watery@watery 예, 색인을 사용하면 성능이 향상 될 수 있습니다. 시스템에서 테스트해야합니다. – Taryn