1

このようなクエリがあります

SELECT
    ProductID,
    ProductSales,
    ProductLocationName
FROM
    ProductLocation
WHERE
    ProductLine=@ProductLine

したがって、私のサンプル結果は次のようになります

ProductID    ProductSales   ProductLocationName
1            $2             Boston
1            $2             Chicago
2            $8             Boston

が異なるproductID/ProductSales場合に繰り返されるいくつかの組み合わせがありますが、返す必要があるのは次のとおりです。ProductLocationName

サンプル結果で上記の結果を返す必要がありますが、これに加えてProductSales、重複したProductID/ProductSales組み合わせを除くすべての値を合計する必要があります。

上記の例:

ProductID 1 + ProductID 2
$2 + $8 = $10

$2 の値は結果で繰り返されるため、2 回追加していないことに注意してくださいprodID/Sales。ただし、リピーターに 3 行すべてを表示する必要があるため、上記の 3 行を返す必要があります。

私が明確であることを願っていますProductID& ProductLocation(そして、私のクエリには他の列が含まれます)、私は必要です

  1. ProductSales(SampleResults上に表示されているように) ごとにProductID. 私はそれSUM(ProductSales)が私にこれをもたらすことを知っています。

  2. SUMすべてのProductSales一意のProductID値 ($2 + $8 = $10)の

可能であれば、これらすべてを同じストアド プロシージャで実行したいと考えています。

私の主な関心事は、ポイント 2 を取得する方法です。つまり、すべてのProductSales値を合計します。私の例では $2+$8 です。

さらに情報が必要な場合はお知らせください。これが私の最初の投稿です。

4

1 に答える 1

0

これを正しく行うには、計算用のサブクエリが必要です。

SELECT ProductID, ProductSales, ProductLocationName, t.SumProductSales
FROM ProductLocation pl cross join
     (select sum(ProductSales) as SumProductSales
      from (select productId, max(ProductSales) as ProductSales
            from ProductionLocation pl
            group by productId
           ) p
     ) t
WHERE ProductLine=@ProductLine

ProductSales の値が同じである別の製品に注意する必要があります。

于 2012-10-23T15:35:45.377 に答える