6

2 つの異なる列から値を取得するケース ステートメントを作成することに興味があります。そのうちの 1 つは計算が関係しています。(特別注文品、製造中止品、通常在庫品などのアイテム タイプを示す列が 1 つあります。2 番目の列には、在庫があるかどうかを判断するための在庫数量 - 販売注文の数量が表示されます。)私の質問

SELECT ItemID, ItemType, (QuantityOnHand - QuantityonSalesOrders) AS Instock
CASE
WHEN ItemType = 'SP / OR' THEN 'Special Order' 
WHEN Instock < '1' THEN 'Out of Stock' 
WHEN Instock > '0' THEN 'In Stock' 
AS "Stock" FROM peachtree;
4

1 に答える 1

9

このタイプのリクエストでは、計算を再利用するか、サブクエリを使用する必要があります。これは、Instock値を指定しているエイリアスが選択リスト内で使用できないためです。

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
于 2013-01-09T16:47:33.643 に答える