1

フィールドを計算しようとしています。例えば

select **sum(New)** as NewCST where WHERE PO ='L22411301' AND ItemNo IN('1730','1343').

合計の代わりに、この case ステートメント全体を実装する必要があります。これほど多くの条件を含む公式計算を行ったことはありません。そのため、どんな助けでも大歓迎です。

これまでのところ、私はこれを得ました:

SELECT *
FROM (SELECT 
    Case
        When  PO_SIZE like ‘%lb%’ Then  CONVERT(decimal(13,4), NET_COST / TOTAL_WEIGHT)
        When PO_SIZE like ‘%LB%’ Then  CONVERT(decimal(13,4), NET_COST / TOTAL_WEIGHT)
        Else  CONVERT(decimal(13,4), ADJ_EXT_NET_COST / LINE_QUANTITY)        
from [FirstStrike_Retail].[custom].[Whse_Line_Item] )End AS NewCst.
WHERE PO ='L22411301' AND ItemNo IN('1730','1343')
4

3 に答える 3

3

外側の select ステートメントは必要ありません。また、句に到達する前に、キーワードでCASEステートメントを閉じる必要があります。ENDFROM

これは、コードの整理されたバージョンです。

SELECT  Case    When PO_SIZE like ‘%lb%’ Then  CONVERT(decimal(13,4), NET_COST / TOTAL_WEIGHT)
                When PO_SIZE like ‘%LB%’ Then  CONVERT(decimal(13,4), NET_COST / TOTAL_WEIGHT)
                Else  CONVERT(decimal(13,4), ADJ_EXT_NET_COST / LINE_QUANTITY)
        End AS NewCst
from    [FirstStrike_Retail].[custom].[Whse_Line_Item] )
WHERE   PO ='L22411301' 
AND     ItemNo IN('1730','1343')
于 2013-09-06T17:35:14.573 に答える
0
select 
   sum(Case When  PO_SIZE like ‘%lb%’ Then  CONVERT(decimal(13,4), NET_COST / TOTAL_WEIGHT)
   When PO_SIZE like ‘%LB%’ Then  CONVERT(decimal(13,4), NET_COST / TOTAL_WEIGHT)
   Else  CONVERT(decimal(13,4), ADJ_EXT_NET_COST / LINE_QUANTITY)END)NewCst 
from 
   [FirstStrike_Retail].[custom].[Whse_Line_Item] 
WHERE 
   PO ='L22411301' AND ItemNo IN('1730','1343')
于 2013-09-06T17:40:03.510 に答える