Я не совсем уверен, возможно ли то, что мне нужно.У меня есть две таблицы, которые объединены, одна из которых представляет собой список элементов, а другая - когда произошло перемещение этих элементов в указанную дату.Движения задаются сумматорами, в этом примере 1 = закуплено, 2 = продано, 3 = скорректировано.Пока кодирование, которое у меня есть, дает отдельную строку для каждого сумматора.Мне нужно объединить строки в одну для каждого элемента.
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
1
2
3
4
RPT_ITM_D Состоит из движения элемента:
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 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
Я понимаю, что мне, вероятно, придется полностью переработать мои столбцы, ноЯ не знаю, с чего начать, и могу ли я вообще это сделать.