Quiero entender que lo que falta es en el último conjunto de resultados, que te muestre la sumatoria de Cantidad y Costo pero agrupado por ItemName. Si es así, intenta así el query:
declare @FechaIni date; --> declarar la variable como la tienes.
declare @FechaFin date; --> declarar la variable como la tienes.
declare @Planta nvarchar(100); --> declarar la variable como la tienes.
set @FechaIni = '20140101'; --> Asignas tus valores.
set @FechaFin = '20140131'; --> Asignas tus valores.
set @Planta = 'Planta01'; --> Asignas tus valores.
with TablaDatos (nombre, nombre_rubro, orden, cantidad, costo)
as
(
------------------ Aquí INICIA tu query ------------------
SELECT nombre, nombre_rubro, orden, sum( cantidad)[cantidad] , sum(costo) [costo]
-------------Query 1 ---------------------------
from v_inventario_inicial
where docdate < @FechaIni
and codigoplanta =@Planta
group by nombre, nombre_rubro,orden
union all
-----------Query 2-------------------------------
SELECT nombre, nombre_rubro,orden, sum( cantidad)[cantidad] , sum(costo) [costo]
from v_compras_consumos
where docdate between @FechaIni and @FechaFin
and codigoplanta= @Planta
group by nombre, nombre_rubro,orden
union all
-------------Query 3 ------------------
SELECT dscription, [NOMBRE Rubro],RUBRO, sum( expr1) [cantidad], sum(expr2) [costo]
from v_consumos2
where Docdate between @FechaIni and @FechaFin
and U_Cod_Planta= @Planta
Group By dscription,[nombre Rubro], RUBRO
------------------ Aquí FINALIZA tu query ------------------
)
select 'Detalle' [TipoDato], * from TablaDatos /* Aquí te mostrará la información del query como lo tienes actualmente.*/
union all
select 'Total' [TipoDato], nombre, nombre_rubro, '', sum(cantidad) cantidad, sum(costo) costo from TablaDatos group by nombre, nombre_rubro /* Aquí te muestra la sumatoria de la columna Cantidadd y Costo. */
order by 2,1 /* Ordenar por ItemName y por columna Tipo */
La columna Cantidad y Costo quiero pensar que tus tablas ya tienen sus signos negativos para las salidas de inventario, de lo contrario tu query solo va estar incrementando estos 2 campos aún cuando sean salidas de inventario.
La tabla v_inventario_inicial y las demás así se llaman o estás poniendo nombres ficticios en lugar de nombres de tablas de SAP B1?
Si es no es como lo necesitas, puedes poner una tabla en la que se muestre cómo quieres la salida de información?
Saludos,
JC.