2016-11-17 8 views
0

誰かが私を助けてくれるのだろうかと思います。私はすべての注文詳細行を各製品にグループ化するクエリを作成しようとしています。私は取得していますどのように私たちはグループでSQLでJOINを使用します

SELECT 
     Line.NetAmount, Line.QtyDespatch, Line.QtyOrder, 
     Line.Price, Line.Price * Line.QtySent AS 'Value' 
     FROM dbo.orderdetails line 

    LEFT JOIN 
    (
    SELECT products.ProductID, products.CompanyID AS StockCompanyID, 
    products.StockCode FROM dbo.products 
    ) 
    Stock ON Line.ProductID = products.ProductID AND products.StockCompanyID = Line.CompanyID  

    WHERE Line.CompanyID = 1 
    ORDER BY Stock.StockID ASC 

結果は、各注文の詳細については、ある個別行が、私はグループごとの各製品IDにしたいと(Line.Price * Line.QtySent)を持っている各製品の合計として、それぞれの製品を表示一度。

私は取得しています結果は

PID  Net sent qty  Price Value 
39044 12 0  5  2.4  0 
39044 12 0  5  2.4  0 
39044 12 0  5  2.4  0 
39044 12 0  5  2.4  0 

あるしかし、私は、製品によって各ラインが、すべての行の累積値のためにそれを取得する必要はありません。基本的には各製品の累積合計が

+0

あなたには、いくつかの予想される結果を表示することができ、あなたのinitalクエリがnetamountを持って:あなたはこのような何かをしたいと思います結果セットのProductIDとTotalPriceの直後ですか? – xQbert

答えて

1

あなたがのProductIdによってグループに必要な、その後Line.QtySentを掛けLine.Priceを合計します。我々はwoudlnt」として、この結果セットになることができませんでしたqtydespatchとqtyorderはラインの純額等を使用することを知っている、

SELECT p.ProductID, SUM(Line.Price * Line.QtySent) AS 'Value' 
FROM dbo.orderdetails line 
LEFT JOIN dbo.products p ON 
Line.ProductID = p.ProductID AND p.CompanyID = Line.CompanyID  
WHERE Line.CompanyID = 1 
GROUP BY p.ProductID 
0

あなたの説明は、このクエリのように聞こえる:

SELECT od.ProductId, SUM(od.Price * od.QtySent) as total 
FROM dbo.orderdetails od 
GROUP BY od.ProductId; 
関連する問題