В моем 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