我不完全确定我所需要的是否可能。我有两张加入的表格,一张是物品清单,另一张是指定日期那些物品有任何移动。这个运动由累加器指定,在这个例子中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 .. –