質問
私SPROCでテーブルという名前の#1 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
文の内部
解決
私は、一時テーブルを使用することはありません。私の推測では、すでに少なくとも1あまりにも多くを使用しているということです。)
あなたはあなたの全体のCASE文の周りにSUMを配置する必要があります:
SUM(AvgPrice *
CASE
WHEN ReservedQty > QtyOnHand THEN QtyOnHand
ELSE ReservedQty
END)
他のヒント
SELECT StoreId, StoreDesc,
SUM(
CASE
WHEN ReservedQty > QtyOnHand THEN
QtyOnHand * AvgPrice
ELSE
ReservedQty * AvgPrice
END
) AS CommittedQty
FROM #temp1
GROUP BY
StoreId, StoreDesc
最初のものは最初に:あなたは#TEMPと##一時テーブルを使用して避けることができる場合は、必要があります。彼らは、地球温暖化や鉄砲水が発生し、温室排出量のすべての種類を担当している邪悪な厄介なささいなことです。 (:
は、それが絶対に必要でない限り、一時テーブルを取り除くと、あなたが持っている場合は、サブクエリと交換し、離れてジョークに。
あなたは、単にこの文の周りに別の選択をラップすることができます。
INSERT INTO #temp2 (StoreId, StoreDesc, CommittedQty)
SELECT StoreId, StoreDesc, Sum (CommittedQty)
FROM
(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)
)
GROUP BY StoreId, StoreDesc
所属していません StackOverflow