我不完全確定我所需要的是否可能。我有兩張加入的表格,一張是物品清單,另一張是指定日期那些物品有任何移動。這個運動由累加器指定,在這個例子中1 =購買,2 =賣出,3 =調整。目前爲止我的編碼爲每個累加器提供了一個單獨的行。我需要將各行合併爲一個項目。SQL將行轉成列
SELECT [Totalizer]=COALESCE(t2.[F1034],0)
,[UPC]=t1.[F01]
,[QTY]=sum(coalesce(t2.[F64],0))
,[Total Amount]=sum(COALESCE(t2.[F65],0))
FROM [STORESQL].[dbo].[COST_TAB] t1
LEFT OUTER JOIN [STORESQL].[dbo].[RPT_ITM_D] t2
ON t1.F01=t2.F01 AND (F254='2011-10-1') and (F1034=1 or F1034=2 or F1034=3)
group by t1.F01,F1034
order by t1.F01
COST_TAB表包括:
UPC Date Totalizer QTY Total Amount
1 2011-10-1 1 1 9.00
1 2011-10-1 2 1 9.99
2 2011-10-1 1 2 6.00
2 2011-10-1 2 1 3.99
2 2011-10-1 3 1 3.00
3 2011-10-1 1 1 1.00
的SQL代碼現在我已經導致:
UPC Date Totalizer QTY Total Amount
1 2011-10-1 1 1 9.00
1 2011-10-1 2 1 9.99
2 2011-10-1 1 2 6.00
2 2011-10-1 2 1 3.99
2 2011-10-1 3 1 3.00
3 2011-10-1 1 1 1.00
4 2011-10-1 0 0 0.00
我
UPC
1
2
3
4
的物品移動的RPT_ITM_D下設我需要它導致:
UPC Date Purchased AMT Sold AMT Adjusted AMT
1 2011-10-1 1 9.00 1 9.99 0 0.00
2 2011-10-1 2 6.00 1 3.99 1 3.00
3 2011-10-1 1 1.00 0 0.00 0 0.00
4 2011-10-1 0 0.00 0 0.00 0 0.00
我意識到我可能不得不完全重寫我的列,但我不知道從哪裏開始,或者如果我可以做到這一點。
字段名爲F1034,F64和F65?我希望那些在你的背景下是有意義的,而不是一些洞穴式的,從未見過dba的設計理念。 –
這是一些零售組織方法..我們的商店數據庫使用它..大部分時間是PITA .. –