Estimado @meqs Muchas gracias por la pronta respuesta.
Lo que obtuve mirando muchas parte es esto, le agregue la unidad de medida, pero aun debo agregar el almacén y el precio de costo, junto con las fechas de las transacciones.
lo que se desea realizar en la empresa es un Análisis de lo consumido mensual, y como se comporta en base al mes anterior (muy parecido al auditoria de stock pero aún más detallado)
DECLARE @dataInicio DATETIME
DECLARE @dataFinal DATETIME
DECLARE @tempo INT
SET @tempo = (SELECT TOP 1 T0.TRANSNUM FROM OINM T0 WHERE T0.[DocDate] >= [%0] AND T0.[DocDate] <= [%1])
SET @dataInicio = (SELECT '[%0]')
SET @dataFinal = (SELECT '[%1]')
SELECT
[Artículo] = t1.itemcode,
[Desc. Artículo] = t1.ItemName,
[Unidad de Medida] = t1.InvntryUom,
[Stock inicial] = ISNULL(COALESCE(t0.saldoinic, 0), 0),
[Entradas] = ISNULL(t1.entradas, 0),
Consumo = ISNULL(t1.consumo, 0),
[Consumo medio diario] = ISNULL(t1.consumo / DATEDIFF(day, @dataInicio, @dataFinal), 0),
[Stock final] = ISNULL(COALESCE(t0.saldoinic, 0) + COALESCE(t1.saldofin, 0), 0),
[Stock promedio] = ISNULL((COALESCE(t0.saldoinic, 0) + (COALESCE(t0.saldoinic, 0) + t1.saldofin)) / 2, 0),
[Rotación stock] = CASE
WHEN ISNULL((COALESCE(t0.saldoinic, 0) + (COALESCE(t0.saldoinic, 0) + t1.saldofin)) / 2, 0) = 0 THEN 0
ELSE ISNULL(t1.consumo / ((COALESCE(t0.saldoinic, 0) + (COALESCE(t0.saldoinic, 0) + t1.saldofin)) / 2), 0)
END,
[Cobertura de stock] = CASE
WHEN ISNULL(COALESCE(t1.consumo / DATEDIFF(day, @dataInicio, @dataFinal), 0), 0) = 0 THEN 0
ELSE ISNULL(((COALESCE(t0.saldoinic, 0) + (COALESCE(t0.saldoinic, 0) + t1.saldofin)) / 2) / (t1.consumo / DATEDIFF(day, @dataInicio, @dataFinal)), 0)
END
FROM
(
SELECT
a1.itemcode,
a1.ItemName,
a1.InvntryUom,
saldoInic = ISNULL(SUM(COALESCE(s1.Inqty, 0)) - SUM(COALESCE(s1.outqty, 0)), 0)
FROM OITM a1
JOIN OINM s1 ON a1.itemcode = s1.itemcode
WHERE s1.docdate < @dataInicio
GROUP BY
a1.itemcode,
a1.ItemName,
a1.InvntryUom
)
AS t0
INNER JOIN (
SELECT
a.itemcode,
a.ItemName,
a.InvntryUom,
entradas = ISNULL(SUM(s.Inqty), 0),
consumo = ISNULL(SUM(s.outqty), 0),
saldoFin = ISNULL(SUM(s.Inqty) - SUM(s.outqty), 0)
FROM OINM s
JOIN OITM a ON a.itemcode = s.itemcode
WHERE s.docdate BETWEEN @dataInicio AND @dataFinal
GROUP BY
a.itemcode,
a.ItemName,
a.InvntryUom
) t1 ON t1.itemcode = t0.itemcode