2

DB で遊んでいますが、テーブルAdvantureWorksに実際の売上値がありません。SalesOrderDetailこの行にはLineTotal、注文 ID による集計が含まれているはずです。

これらの値を注文 ID 行ごとに [Actual Sales] 列に入力する必要があります。

select SUM(LineTotal) as ActualSales
from Sales.SalesOrderDetail
group by SalesOrderID
4

3 に答える 3

0
UPDATE x
SET x.ActualSales = x.NewActualSales
FROM (
      SELECT ActualSales, SUM(LineTotal) OVER (PARTITION BY SalesOrderID) AS NewActualSales
      FROM Sales.SalesOrderDetail
      ) x
于 2012-12-25T10:19:09.447 に答える
0

グループ化するフィールドをクエリに追加する必要があります。

select SalesOrderID, sum(LineTotal) as ActualSales 
from SalesOrderDetail 
group by SalesOrderID
于 2012-12-25T08:14:11.933 に答える
0

UPDATE次のJOINようにできます:

UPDATE od
SET od.ActualSalesColumn = g.ActualSales
FROM Sales.SalesOrderDetail od
INNER JOIN
(
    SELECT 
      SalesOrderDetail, 
      SUM(LineTotal) as ActualSales 
    FROM Sales.SalesOrderDetail 
    GROUP BY SalesOrderID
) g ON od.SalesOrderID = g.SalesOrderID;

または: CTE の場合:

WITH ActualSales
AS
(
     SELECT 
       SalesOrderDetail, 
       SUM(LineTotal) as ActualSales 
     FROM Sales.SalesOrderDetail 
     GROUP BY SalesOrderID
)
UPDATE od
SET od.ActualSalesColumn = g.ActualSales
FROM Sales.SalesOrderDetail od
INNER JOIN ActualSales g ON od.SalesOrderID = g.SalesOrderID;
于 2012-12-25T08:21:08.863 に答える