私のSPROCでは、#temp1という名前のテーブルに次の列が含まれています。
#temp1 (StoreId, StoreDesc, ReservedQty, AvgPrice, QtyOnHand)
私の質問は次の質問に基づいています
INSERT INTO #temp2 (StoreId, StoreDesc, CommittedQty)
(SELECT StoreId, StoreDesc,
CASE WHEN ReservedQty > QtyOnHand THEN
sum(QtyOnHand * AvgPrice)
ELSE
sum(ReservedQty * AvgPrice)
END AS CommittedQty
FROM #temp1
GROUP BY StoreId, StoreDesc, QtyOnHand, ReservedQty)
サンプルの結果セットは次のようになります。
StoreId StoreDesc CommittedQty
C4ED0D8B-22CF-40FE-8EF9-7FD764310C94 FramersBranch 0
C4ED0D8B-22CF-40FE-8EF9-7FD764310C94 FarmersBranch 88978
C4ED0D8B-22CF-40FE-8EF9-7FD764310C94 FarmersBranch 0
C4ED0D8B-22CF-40FE-8EF9-7FD764310C94 FarmersBranch 3152
6369D3A6-83BC-4BB0-9A25-86838CD2B7BA Woodlands 5582
6369D3A6-83BC-4BB0-9A25-86838CD2B7BA Woodlands 389
残念ながら、ステートメントGROUP BY
のQtyOnHand
&ReservedQty
列が必要なCASE
ため、StoreIdごとに複数の行を取得します。
私が望む次の結果セットを取得できるように、CommittedQtyに基づいて結果を(再び)合計する簡単な方法があるかどうかを知りたいです。
StoreId v StoreDesc CommittedQty
C4ED0D8B-22CF-40FE-8EF9-7FD764310C94 FramersBranch 92130
6369D3A6-83BC-4BB0-9A25-86838CD2B7BA Woodlands 5971
SELECT
別の一時テーブルを使用できることはわかっていますが、ステートメント内でこれを実現するためのより簡単な方法があるかどうか疑問に思いました