2017-11-17 14 views
0

すべてのITEM_PARENT番号に対してSUM SOHにSUM SQLコードを処理しようとしています。 SOHは私が探している結果で、ITEM_PARENTとSTOCK_ON_HANDは私が持っているものです。数値からSQLへの数値が同じ場合

CASE WHEN ITEM_PARENT = ITEM_PARENT THEN SUM(STOCK_ON_HAND) ELSE 'DN' END AS SOH_SUM, 

私はすでに行っているコードが動作していないことのようです....

ITEM_PARENT STOCK_ON_HAND SOH_SUM 
123649336   1   11 
123649336   1   11 
123649336   1   11 
123649336   5   11 
123649336   2   11 
123649336   1   11 
123649328   1   15 
123649328   1   15 
123649328   2   15 
123649328   1   15 
123649328   2   15 
123649328   1   15 
123649328   1   15 
123649328   3   15 
123649328   3   15 
124566152   3   19 
124566152   1   19 
124566152   3   19 
124566152   3   19 
124566152   2   19 
124566152   7   19 

誰もが、私はそこに欠けているものを知っていますか?

+0

期待されているどのような結果を? –

+0

Item parent = item parentは常にtrueです。 –

+0

... nullの場合は無効です。 – jarlh

答えて

1

何らかの種類の条件付き集計を実行しようとしているように見えますが、予想される出力にはこれを必要としません。テーブル全体を選択するだけで、SUMを解析関数として使用してSOH_SUMを計算することができます。

SELECT 
    ITEM_PARENT, STOCK_ON_HAND, 
    SUM(STOCK_ON_HAND) OVER (PARTITION BY ITEM_PARENT) SOH_SUM 
FROM yourTable 
ORDER BY ITEM_PARENT; 
+0

Thanks @Tim!それはうまくいった! – Freedox

+0

@Freedoxあなたを助けてうれしい。 –

1

目的の結果を得るためにウィンドウ関数を使用できます。

select 
    [ITEM_PARENT] 
    ,[STOCK_ON_HAND] 
    ,sum([STOCK_ON_HAND]) over(partition by [ITEM_PARENT]) as [ItemTotal] 
from tablename 
; 

そうでない場合は、あなただけの、各項目のグループのために手元にデータの総株式を取得したい場合:

select 
    [ITEM_PARENT] 
    ,sum([STOCK_ON_HAND]) as [TotalStockOnHand] 
from tablename 
group by 
    [ITEM_PARENT] 
; 
+0

期待される出力を得るには、元のテーブルを2番目のクエリに結合する必要があります。 –

関連する問題