2016-08-20 26 views
0

我會附上截圖,請看看:我們如何將GROUP BY中的列與內部聯接進行分組?

CLIK HERE TO VIEW PICTURE

在此,我需要根據每個獲得[本地貨幣]的總和各分行名稱

SELECT 
    BR.BranchName [BRANCH NAME], 
    PDS.ProductName [CURRENCY], 
    SUM(FCBD.Quantity) [QUANTITY], 
    FCBD.BuyingRate [RATE], 
    SUM(CONVERT(DECIMAL(12, 3), (FCBD.Quantity * FCBD.BuyingRate))) [LOCAL CURRENCY], 
    0 [TOTAL] 
FROM 
    ALX_FCBuy FCB 
INNER JOIN 
    ALX_FCBuyDetails FCBD ON FCB.FCBuyID = FCBD.FCBuyID 
INNER JOIN 
    ALX_Branches BR ON FCB.BranchID = BR.BranchID     
INNER JOIN 
    ALX_Products PDS ON FCBD.ProductID = PDS.ProductID 
GROUP BY 
    BR.BranchName, FCBD.ProductID, PDS.ProductName, FCBD.BuyingRate 
+0

郵編請,而不是像..否則,我們怎麼能寫所有的代碼? – scaisEdge

+0

代碼..似乎在語法上相互矛盾..最新的問題是什麼? ..可能是你沒有獲得期望的結果......或者你有錯誤? – scaisEdge

+0

在此我需要根據每個分支名稱獲得[本地幣種]的總和, –

回答

1
SELECT 
BR.BranchName [BRANCH NAME], 
PDS.ProductName [CURRENCY], 
SUM(FCBD.Quantity) [QUANTITY], 
FCBD.BuyingRate [RATE], 
SUM(CONVERT(DECIMAL(12, 3), (FCBD.Quantity * FCBD.BuyingRate))) [LOCAL CURRENCY], 
SUM(SUM(CONVERT(DECIMAL(12, 3), FCBD.Quantity * FCBD.BuyingRate))) OVER (PARTITION BY BR.BranchName) [TOTAL] 
FROM 
ALX_FCBuy FCB 
INNER JOIN 
ALX_FCBuyDetails FCBD ON FCB.FCBuyID = FCBD.FCBuyID 
INNER JOIN 
ALX_Branches BR ON FCB.BranchID = BR.BranchID     
INNER JOIN 
ALX_Products PDS ON FCBD.ProductID = PDS.ProductID 
GROUP BY 
BR.BranchName, FCBD.ProductID, PDS.ProductName, FCBD.BuyingRate 
+0

thanks先生它的工作 –

1

如果您需要總和爲每個分支,那麼只有放進了SELECTGROUP BY

SELECT BR.BranchName [BRANCH NAME], 
     SUM(CONVERT(DECIMAL(12, 3), FCBD.Quantity * FCBD.BuyingRate)) [LOCAL CURRENCY], 
FROM ALX_FCBuy FCB INNER JOIN 
    ALX_FCBuyDetails FCBD 
    ON FCB.FCBuyID = FCBD.FCBuyID INNER JOIN 
    ALX_Branches BR 
    ON FCB.BranchID = BR.BranchID INNER JOIN 
    ALX_Products PDS 
    ON FCBD.ProductID = PDS.ProductID 
GROUP BY BR.BranchName; 

如果你想在你現有的結果集額外列,則計算將使用窗口功能:

SELECT . . . 
     SUM(SUM(CONVERT(DECIMAL(12, 3), FCBD.Quantity * FCBD.BuyingRate))) OVER (PARTITION BY BR.BranchName) as Total 
. . . 
+0

你好先生,我需要在Pic中顯示的所有列,額外這個列還 –

+0

@swethavijayan。 。 。這是答案中的第二個查詢。 –

+0

它顯示此錯誤:消息4109,級別15,狀態1,行2 窗口函數不能用於另一個窗口函數或聚合的上下文中。 –