如圖所示,code一樣的但是加總之後不會把所有一樣的code加總在一起,請問該如何解決?
圖一-尚未合計
圖二-已合計但是code同樣的未加總
SELECT A.CategoryType,A.DiscountType,A.Code,A.StartDate,A.EndDate,B.DiscountPrice,
SUM(B.DiscountPrice) AS TatalDiscountPrice
FROM [HQInformation].[dbo].[TradeDiscountDetailStatistics] AS B
LEFT JOIN [HQMasterFile].[dbo].[Discount] AS A
ON B.CategoryType=A.CategoryType AND B.DiscountType=A.DiscountType
GROUP BY A.CategoryType,A.DiscountType,A.Code,A.StartDate,A.EndDate,B.DiscountPrice
ORDER BY A.Code ASC
如果 Discount 內的 Code 就是 TradeDiscountDetailStatistics 內的 DiscountCode,那就在加一個條件 B.DiscountCode=A.Code
或是
SELECT A.Code,A.StartDate,A.EndDate,B.DiscountPrice,
SUM(B.DiscountPrice) AS TatalDiscountPrice
FROM [HQInformation].[dbo].[TradeDiscountDetailStatistics] AS B
LEFT JOIN [HQMasterFile].[dbo].[Discount] AS A
GROUP BY A.Code,A.StartDate,A.EndDate,B.DiscountPrice
ORDER BY A.Code ASC
感謝大大回答
最後修改完如下
不吝指教
select
t.StoreCode as "門店代號"
,t.StoreName as "門店名稱"
,t.ProductName as "產品名稱"
,c.DiscountPrice as "折扣金額"
,d.Name as "活動名稱"
,d.StartDate as "活動開始"
,d.EndDate as "活動結束"
from HQInformation.dbo.TradeDiscountDetailStatistics c
join HQMasterFile.dbo.Discount d
on c.DiscountCode = d.Code
join HQInformation.dbo.TradeDiscountStatistics t
on c.TradeDisscountStatisticsID= t.ID
order by StartDate ASC;
跟你寫的略有差異,不過主要是要折扣名稱的加總以及商品的折扣金額
現在卡在商品在計算所有折扣金額的時候會因為不同的折扣名稱而不能只顯示一個商品名稱就計算出所有的折扣金額
GROUP裡只要Code就好了。
因為你GROUP裡還有DiscountPrice,每個DiscountPrice不同,不會Group在一起。
二個TABLE 之問的關係沒有處理.
正常來說:會在WHERE 條件式中加二個TABLE 的關連性.
如: A.ID=B.ID 之類的語法.
都沒有人發現他的 GROUP 內有多一個 DisCountCode 嘛?
然後select沒看到 DisCountCode
我記得mssql不是會做group的欄位機制。
理論上在select的欄位要包含group的欄位,不是會出錯?
還是將其嚴格模式給拿掉了?