2017-01-19 4 views
-1

次のSQLクエリは同じアイテムをすべてグループ化していません。 [![ここに画像の説明を記入してください] [1]] [1]集計関数がSQLで使用されているときGroupbyが機能しないクエリ

イメージ内各支店の通貨に応じてグループ化する必要がありますが、同じ通貨でグループ化することはできません。

SELECT BR.BranchName BranchName, 
     PDS.ProductName Currency, 
     SUM(FCBSD.Quantity) Quantity,SUM(CONVERT(DECIMAL(12,3), 
     (FCBSD.Quantity*FCBSD.DealingRate))) LocalCurrency 
     ,case when (FCBSD.IsBuy=0) then 'Sell' else 'Buy'end [Type], 
     SUM(SUM(CONVERT(DECIMAL(12, 3), FCBSD.Quantity*FCBSD.DealingRate))) OVER (PARTITION BY BR.BranchID) [TOAL] 
FROM ALX_FCBuySell FCSB 
    LEFT JOIN ALX_FCBuySellDetails FCBSD ON FCSB.FCBuySellID= FCBSD.FCBuySellID 
    LEFT JOIN ALX_Branches BR ON FCSB.BranchID= BR.BranchID     
    LEFT JOIN ALX_Products PDS ON FCBSD.ProductID=PDS.ProductID 
GROUP BY BR.BranchName, PDS.ProductName,BR.BranchID,FCBSD.Quantity,FCBSD.IsBuy 
ORDER BY BR.BranchName 

それは正確なアウト私はあなたのコードでは、[2]

+0

期待される出力はどれくらいですか? –

+0

out putは、各支店のそれぞれのcurrecnyの合計です。 –

+0

ie Exibition支店のすべてのUAEディルハムの合計です。ここには2が表示されますが、私はただ1つのUAEディルハムしか必要とせず、数量は1500で、現地通貨は565.625 –

答えて

1
SELECT BR.BranchName BranchName, 
     PDS.ProductName Currency, 
     SUM(FCBSD.Quantity) Quantity, 
     FCBSD.DealingRate Rate, 
     SUM(CONVERT(DECIMAL(12,3), (FCBSD.Quantity*FCBSD.DealingRate))) LocalCurrency, 
     case when (FCBSD.IsBuy=0) then 'Sell' else 'Buy'end [Type], 
     SUM(SUM(CONVERT(DECIMAL(12, 3), FCBSD.Quantity*FCBSD.DealingRate))) OVER (PARTITION BY BR.BranchID) [TOAL] 
FROM ALX_FCBuySell FCSB 
     LEFT JOIN ALX_FCBuySellDetails FCBSD ON FCSB.FCBuySellID= FCBSD.FCBuySellID 
     LEFT JOIN ALX_Branches BR ON FCSB.BranchID= BR.BranchID     
     LEFT JOIN ALX_Products PDS ON FCBSD.ProductID=PDS.ProductID 
     LEFT JOIN ALX_Customers CUS ON FCSB.CustomerID =CUS.CustomerID 
    GROUP BY BR.BranchID, BR.BranchName, FCBSD.ProductID ,PDS.ProductName,FCBSD.DealingRate, 
      BR.BranchID,FCBSD.IsBuy 
    ORDER BY BR.BranchName 

[2] [] [ここに画像の説明を入力します!]各通貨の種類と各支店 下GROUPBYされなければならない必要がありますグループからFCBSD.Quantityを削除する必要があります。あなたはタイプと支店に応じてgroupby形式ですべての通貨を得て、これを試してコメントを投稿してください。

関連する問題