У меня большая проблема с средневзвешенным SQL запросом
Привет ,
Пожалуйста, помогите мне с моей проблемой
у меня есть такой запрос
DEclare @ID as int = '96'; DEclare @StoreID as int = '1'; DEclare @Add_Units as int = (SELECT [Add_Units] FROM Item WHERE [ID] = @ID); DEclare @Units as int = (SELECT [Units] FROM Item WHERE [ID] = @ID); DEclare @Add_Units_Count as int = (SELECT [Add_Units_Count] FROM Item WHERE [ID] = @ID); IF OBJECT_ID('tempdb..#TempStore') IS NOT NULL DROP Table #TempStore; WITH RET AS ( SELECT * FROM Store_Entery WHERE [ItemID] = @ID AND [StoreID] = @StoreID AND ([Type] = 'Begin' OR [Type] = 'Pay' OR [Type] = 'Refanded' OR [Type] = 'AzenEdafa' OR [Type] = 'AzenSarfRefand' OR [Type] = 'TaswiaStoresPlus') Union ALL SELECT * FROM Store_Entery WHERE [ItemID] = @ID AND [StoreID] = @StoreID AND ([Type] = 'Invoices' OR [Type] = 'RPay' OR [Type] = 'AzenEdafaRefand' OR [Type] = 'AzenSarf' OR [Type] = 'TaswiaStoresMins' OR [Type] = 'AzenEdafaRefand') ) SELECT (CASE When ([Type] = 'Begin') THEN 0 ELSE Row_Number() OVER (ORDER BY @@Rowcount)END) AS IDO,* Into #TempStore FROM RET ORDER BY [Date],@@Rowcount ASC SELECT SS.IDO, (Case When @Add_Units != 0 THEN ( (SELECT (SUM(ISNULL(SBO.[PayAmountTotal], 0)) + (SUM(ISNULL(SBO.[PayAmountTotalS], 0)))) AS Expr1 FROM #TempStore SBO WHERE (SBO.IDO <= SS.IDO) AND (SBO.[ItemID] = SS.ItemID) AND (SBO.[Type] = 'Begin' OR SBO.[Type] = 'Pay' OR SBO.[Type] = 'Refanded' OR SBO.[Type] = 'AzenEdafa' OR SBO.[Type] = 'AzenSarfRefand' OR SBO.[Type] = 'TaswiaStoresPlus') AND SBO.StoreID = SS.StoreID) - (((SELECT (SUM(ISNULL(SBO.[PayAmountTotal], 0)) + (SUM(ISNULL(SBO.[PayAmountTotalS], 0)))) AS Expr1 FROM #TempStore SBO WHERE (SBO.IDO <= SS.IDO) AND (SBO.[ItemID] = SS.ItemID) AND (SBO.[Type] = 'Begin' OR SBO.[Type] = 'Pay' OR SBO.[Type] = 'Refanded' OR SBO.[Type] = 'AzenEdafa' OR SBO.[Type] = 'AzenSarfRefand' OR SBO.[Type] = 'TaswiaStoresPlus') AND SBO.StoreID = SS.StoreID) / (SELECT (((SUM(ISNULL(SBO.Plus,0)) + SUM(ISNULL(SBO.PlusT,0)))) / Cast(@Add_Units_Count AS int)) FROM #TempStore SBO WHERE (SBO.IDO <= SS.IDO) AND (SBO.[ItemID] = SS.ItemID) AND SBO.StoreID = SS.StoreID)) * (ISNULL((SELECT (((SUM(ISNULL(SBO.Mins,0)) + SUM(ISNULL(SBO.MinsT,0)))) / Cast(@Add_Units_Count AS int)) FROM #TempStore SBO WHERE (SBO.IDO <= SS.IDO) AND (SBO.[ItemID] = SS.ItemID) AND SBO.StoreID = SS.StoreID) ,0))) ) / (ISNULL((SELECT (((SUM(ISNULL(SBO.Plus,0)) + SUM(ISNULL(SBO.PlusT,0))) - (SUM(ISNULL(SBO.Mins,0)) + SUM(ISNULL(SBO.MinsT,0)))) / Cast(@Add_Units_Count AS int)) FROM #TempStore SBO WHERE (SBO.IDO <= SS.IDO) AND (SBO.[ItemID] = SS.ItemID) AND SBO.StoreID = SS.StoreID) ,0)) END) AS Expr22, * FROM #TempStore SS LEFT OUTER JOIN Item AS IT ON IT.ID = SS.ItemID LEFT OUTER JOIN Units AS UI ON IT.Units = UI.ID LEFT OUTER JOIN Units AS US ON IT.Add_Units = US.ID ORDER BY SS.IDO ASC
я пытаюсь получить средневзвешенное значение не могу понять как я это делаю префект
мне нужно получить всю стоимость покупок
И которые должны снизить себестоимость продаж
и получите последнюю стоимость, чтобы разделить ее на Ваш баланс
чтобы получить последнее среднее значение
но я не экономлю на продажах
мне нужно получить стоимость от последнего среднего
теперь моя проблема заключается в следующем
после того, как товарный запас не
в среднем это номера или null
это теперь проблема, но реальная проблема после того, как я сделаю новые покупки
он дал мне неправильное среднее
это фото из запросов
[^]
последняя строка в expr22 должна быть 130 а не 120
пожалуйста, помогите мне
Что я уже пробовал:
большая проблема пожалуйста помогите мне
моя проблема с средневзвешенным sql-запросом :(