Sql-Server
SQL SERVER - 分組和轉換計量單位
我給了一個任務,但很難解決它。希望你能幫我解決這個問題。
這是我的場景。
我有一張銷售表。產品是麵包、紙杯蛋糕和餅乾。
這是條件:
如果我發現 12 包芝士蛋糕或某些產品,我會將其轉換為 1 盒。
所以如果我有
第 1 行產品:芝士蛋糕 數量:5 包第2
產品:芝士蛋糕 數量:5 包 第3
產品:芝士蛋糕 數量:2 包
我會得到:
第 1 行產品:芝士蛋糕數量:1 盒
如您所見,從 3 行開始,它變成了 1 行。
你能幫我怎麼做嗎?
這是我的程式碼:
select SoldtoPtNm, MatCode, MatDesc, SU, SUM(GrossQty) as total, datepart(wk, BillDt) as week, BillDt from tbl_Sales_test group by SoldtoPtNm, MatCode, MatDesc, SU, GrossQty, BillDt
現在我得到的是相同單位的數量。請查看結果集的螢幕截圖。
任何提示和建議將不勝感激。謝謝!
假設你有桌子:
ProductCode ProductDescription ProductQty 1 Apple 19 2 Banana 1 1 Apple 2 1 Apple 4 2 Banana 10 3 Clementine 8 3 Clementine 1 4 Lemon 12
詢問:
Select * into #temp from ( select ProductCode, ProductDescription, sum(ProductQty) / 12 as Qty, case when (sum(ProductQty) / 12) > 0 then 'BOX' else 'PACK' end Package from Products group by ProductCode, ProductDescription union all select ProductCode, ProductDescription, sum(ProductQty) % 12 as Qty, case when (sum(ProductQty) % 12) = 0 then 'No' else 'PACK' end Package from Products group by ProductCode, ProductDescription) as tmp select * from #temp where Package<>'No' and Qty<>0 order by ProductCode
結果我得到了這個:
ProductCode ProductDescription Qty Package 1 Apple 2 BOX 1 Apple 1 PACK 2 Banana 11 PACK 3 Clementine 9 PACK 4 Lemon 1 BOX
我希望這就是你正在尋找的。