2015-04-06 49 views
0

在下面的代碼中,我有一個查詢,我想顯示這樣的值。我想要顯示不同的taxcalculation和總價格的基礎上獨特taxcalculation.Pls幫助我做到這一點。要顯示不同的值,並使用SQL服務器求和值

發票詳細信息表:

TaxCalculation TotalPrice

0.00   500 
0.00   750 
1.00   980 
2.00   400 

預期結果:

TaxCalculation TotalPrice

0.00   1250 
1.00   980 
2.00   400 



SELECT DISTINCT CONVERT(VARCHAR(10), I.CreatedOn, 105) AS InvoiceDate 
    ,INVD.Interest 
    ,CASE 
     WHEN Count(INVD.TaxCalculation) OVER (PARTITION BY INVD.TaxCalculation) > 1 
      THEN SUM(Isnull((INVD.TotaPrice), 0.00)) 
     ELSE Isnull((INVD.TotaPrice), 0.00) 
     END VATAMOUNT 
    ,INVD.TaxCalculation 
    ,INVD.TotaPrice 
FROM Invoice I 
LEFT OUTER JOIN Customer C 
    ON C.CustomerID = I.CustomerID 
LEFT OUTER JOIN InvoiceDetail INVD 
    ON INVD.InvoiceID = I.InvoiceID 
LEFT OUTER JOIN Locations L 
    ON L.LocationID = I.LocationID 
LEFT OUTER JOIN LocationProductMap LPM 
    ON LPM.ProductID = INVD.ProductID 
LEFT OUTER JOIN OrderForm O 
    ON O.OrderFormID = I.OrderFormID 
LEFT OUTER JOIN Product P 
    ON P.ProductID = INVD.ProductID 
LEFT OUTER JOIN UnitType U 
    ON U.UnitTypeID = P.UnitTypeID 
WHERE I.InvoiceID = @i_InvoiceID 
    AND LPM.LocationID = I.LocationID 
GROUP BY I.TotalPrice 
    ,CONVERT(VARCHAR(10), I.CreatedOn, 105) 
    ,INVD.Interest 
    ,INVD.TaxCalculation 
    ,INVD.TotaPrice 

回答

1

這是我只是用你的查詢作爲子查詢

SELECT 
    A.TaxCalculation 
    , SUM(A.TotaPrice) AS TotalPrice 
FROM 
(
    SELECT DISTINCT 
     CONVERT(VARCHAR(10), I.CreatedOn, 105) AS InvoiceDate 
     , INVD.Interest 
     , CASE 
      WHEN Count(INVD.TaxCalculation) OVER (PARTITION BY INVD.TaxCalculation) > 1 
       THEN SUM(Isnull((INVD.TotaPrice), 0.00)) 
      ELSE Isnull((INVD.TotaPrice), 0.00) 
      END VATAMOUNT 
     , INVD.TaxCalculation 
     , INVD.TotaPrice 
    FROM Invoice I 
    LEFT JOIN Customer C 
     ON C.CustomerID = I.CustomerID 
    LEFT JOIN InvoiceDetail INVD 
     ON INVD.InvoiceID = I.InvoiceID 
    LEFT JOIN Locations L 
     ON L.LocationID = I.LocationID 
    LEFT JOIN LocationProductMap LPM 
     ON LPM.ProductID = INVD.ProductID 
    LEFT JOIN OrderForm O 
     ON O.OrderFormID = I.OrderFormID 
    LEFT JOIN Product P 
     ON P.ProductID = INVD.ProductID 
    LEFT JOIN UnitType U 
     ON U.UnitTypeID = P.UnitTypeID 
    WHERE I.InvoiceID = @i_InvoiceID 
     AND LPM.LocationID = I.LocationID 
    GROUP BY I.TotalPrice 
     , CONVERT(VARCHAR(10), I.CreatedOn, 105) 
     , INVD.Interest 
     , INVD.TaxCalculation 
     , INVD.TotaPrice 
) AS A 
GROUP BY A.TaxCalculation 
0

以下查詢給出了預期的結果。

稅務選擇發票組不同的稅,金額(價格)

請參考以下鏈接瞭解詳細信息:

http://sqlfiddle.com/#!6/be9ae/2

如果這不是預期的答案,讓我知道了數據稅收計算類型和定義的總價格。

謝謝。