Prezados,
O tema é mais simples do que estão tentando fazer.
Anexo a solução
Att,
Manuel Lazcano
Exxis
Chile
Consulta de estoque por data
SELECT T0.DocDate AS 'Data de contabilização',
T0.ItemCode AS 'Número do artigo',
t1.itemname AS 'Descrição',T2.ItmsGrpnam as 'Grupo',
'Bod' AS 'Código do armazém',
case when T0.InQty=0 or T0.InQty is null then T0.OutQty*-1 else T0.InQty end AS 'Quantidade TRX',
T0.CalcPrice AS 'Custo',
case when ((case when T0.InQty=0 or T0.InQty is null then T0.OutQty*-1 else T0.InQty end) * T0.CalcPrice) <> 0 then ((case when T0.InQty=0 or T0.InQty is null then T0.OutQty*-1 else T0.InQty end) * T0.CalcPrice) else T0.transvalue END AS 'Montante', T3.segment_0 AS 'Conta de Estoque', T3.AcctName AS 'Nome da Conta' INTO #TEMP
FROM dbo.OINM T0 INNER JOIN dbo.OITM T1 ON T0.ItemCode = T1.ItemCode INNER JOIN dbo.OITB T2 ON T1.ItmsGrpCod = T2.ItmsGrpCod INNER JOIN dbo.OACT T3 ON T2.BalInvntAc = T3.AcctCode
WHERE T0.DocDate<='[%0]'
SELECT
, Descrição, Grupo, [Código do armazém], SUM( ) AS Quantidade, SUM(Montante) AS Valor,CAST ( CASE WHEN SUM(Montante)=0 OR SUM( )=0 THEN 0 else SUM(Montante)/SUM( ) END AS NVARCHAR) AS 'Custo Médio', , , ,
FROM #TEMP
GROUP BY , Descrição, , , ,grupo