これは私の以前の質問の続きです。クエリからさらに詳細を取得したいので、もう一度説明すると簡単だと思います。だからここに行きます:
サンプル テーブル: (注: テーブルには、多数の異なる LOTNO を持つ 100 の ID があります)
ITEMNO LOTNO TRANS_QUAN TRANS_TYPE
1 45 16 PO
1 3 2 PO
1 45 47 MH
1 45 3 MH
1 3 8 MH
これまでのところ、ID ごとに異なる LotNo は考慮されておらず、ID と TYPE に基づいて合計されています。以下のコードは、ID = 1 で TYPE = 'PO' のすべての数量値を合計し、ID = 1 で TYPE = 'MANUAL/BACKFLUSH' で合計されたすべての数量値と比較します。これでNicholas Krasnovに):
SELECT *
FROM (SELECT TR.ITEMNO
, ROUND(SUM(TR.TRANS_QUAN * (DECODE(TR.TRANS_TYPE, 'PO', 1, 0)))) AS SUM_IN
, ROUND(SUM(TR.TRANS_QUAN * (DECODE(TR.TRANS_TYPE, 'MANUAL/BACKFLUSH', 1,0))))AS SUM_OUT
FROM IQMS.TRANSLOG TR
GROUP BY IQMS.TR.ITEMNO
ORDER BY IQMS.TR.ITEMNO)
WHERE SUM_OUT > SUM_IN
合計計算をさらに分解して、LOTNO フィールドを組み込みたいと考えています。上記の表では、ID = 1 について、ID = 1、LotNo = 45、TYPE = PO のすべての値を合計し、それらを ID = 1、LotNo = 45、TYPE = 'MANUAL\BACKFLUSH' と比較します。
次に、(ID = 1、LOTNO = 3、TYPE = 'PO') を (ID = 1、LOTNO = 3、TYPE ='MANUAL/BACKFLUSH') などと比較します。
また、SUM_OUT > SUM_IN のレコードのみを返したい
私の出力が次のようなものになることを願っています
ID LOTNO SUM_IN SUM_OUT
1 45 30 50
1 3 2 8
より具体的な結果セットを得るために、これをどのように組み込むことができるかについてのアイデアはありますか?? おそらく、余分な GROUP BY か何かのような単純なもの?? 私が達成したいことを明確にしていただければ幸いです。
いつも応援ありがとうございます!:)