Debajo te paso algo que se armo para un cliente, podes usar eso como base, pero seguramente necesites alguna configuracion particular. De ser necesario deberias coordinar con la oficina para que alguien te asista en eso.
select crm_presupuestos.id_cliente, razonSocial, crm_presupuestos.id_presupuesto, crm_presupuestos.version, crm_presupuestos.id_estadoPresupuesto,
cast(dbo.fnGetTotalPresupuestoVersion(crm_presupuestos.id_presupuesto,crm_presupuestos.version) as decimal(18,2)) as totalPresupuesto,
'select crm_presupuestos.id_presupuesto, crm_presupuestos.version, fecha_alta, crm_presupuestos.bonif, crm_presupuestosDetalles.cod_articu, cantidad * cantidad2 * cantidad3 as cantidad, precio, crm_presupuestosDetalles.bonif, bonif2, bonif3, dbo.fnGetBonificacionResultante(crm_presupuestosDetalles.bonif, bonif2, bonif3) as bonifTotal
from crm_presupuestos
inner join crm_presupuestosDetalles on crm_presupuestos.id_presupuesto=crm_presupuestosDetalles.id_presupuesto and crm_presupuestos.version=crm_presupuestosDetalles.version
where crm_presupuestos.id_presupuesto=' + cast(crm_presupuestos.id_presupuesto as varchar(10)) + ' and crm_presupuestos.version=' + cast(crm_presupuestos.version as varchar(10)) as totalPresupuesto_drillDown,
coalesce(costos.importe,0) as costos,
'select crm_presupuestos.id_presupuesto, crm_presupuestos.version, fecha_alta, crm_presupuestosDetalles.cod_articu, cantidad * cantidad2 * cantidad3 * costo
from crm_presupuestos
inner join crm_presupuestosDetalles on crm_presupuestos.id_presupuesto=crm_presupuestosDetalles.id_presupuesto and crm_presupuestos.version=crm_presupuestosDetalles.version
where crm_presupuestos.id_presupuesto=' + cast(crm_presupuestos.id_presupuesto as varchar(10)) + ' and crm_presupuestos.version=' + cast(crm_presupuestos.version as varchar(10)) as costos_drillDown,
coalesce(compras.importe,0) as compras,
'select crm_presupuestosDetalles.ID_PresupuestoDetalle,crm_presupuestosCompras.cod_provee, cpa01.nom_provee, crm_presupuestosCompras.t_comp, crm_presupuestosCompras.n_comp, cast(case when crm_presupuestosCompras.porcentaje=0 then crm_presupuestosCompras.importe else v_comprobantesComprasParaPresupuestos.importe*crm_presupuestosCompras.porcentaje/100 end as decimal(18,2)) as importe
from crm_presupuestosCompras inner join v_comprobantesComprasParaPresupuestos on crm_presupuestosCompras.cod_provee=v_comprobantesComprasParaPresupuestos.cod_provee and crm_presupuestosCompras.t_comp=v_comprobantesComprasParaPresupuestos.t_comp and crm_presupuestosCompras.n_comp=v_comprobantesComprasParaPresupuestos.n_comp
inner join cpa01 on crm_presupuestosCompras.cod_provee=cpa01.cod_provee
inner join crm_presupuestosDetalles on crm_presupuestosCompras.id_presupuestoDetalle=crm_presupuestosDetalles.id_presupuestoDetalle
inner join crm_presupuestos on crm_presupuestosDetalles.id_presupuesto=crm_presupuestos.id_presupuesto and crm_presupuestosDetalles.version=crm_presupuestos.version
where crm_presupuestos.id_presupuesto=' + cast(crm_presupuestos.id_presupuesto as varchar(10)) + ' and crm_presupuestos.version=' + cast(crm_presupuestos.version as varchar(10)) as compras_drilldown,
coalesce(facturas.importe,0) as facturas
from crm_presupuestos
inner join crm_clientes on crm_presupuestos.id_cliente=crm_clientes.id_cliente
left join (
select crm_presupuestos.id_presupuesto, crm_presupuestos.version, sum(cast(case when crm_presupuestosCompras.porcentaje=0 then crm_presupuestosCompras.importe else v_comprobantesComprasParaPresupuestos.importe*crm_presupuestosCompras.porcentaje/100 end as decimal(18,2)) ) as importe
from crm_presupuestosCompras inner join v_comprobantesComprasParaPresupuestos on crm_presupuestosCompras.cod_provee=v_comprobantesComprasParaPresupuestos.cod_provee and crm_presupuestosCompras.t_comp=v_comprobantesComprasParaPresupuestos.t_comp and crm_presupuestosCompras.n_comp=v_comprobantesComprasParaPresupuestos.n_comp
inner join crm_presupuestosDetalles on crm_presupuestosCompras.id_presupuestoDetalle=crm_presupuestosDetalles.id_presupuestoDetalle
inner join crm_presupuestos on crm_presupuestos.id_presupuesto=crm_presupuestosDetalles.id_presupuesto and crm_presupuestos.version=crm_presupuestosDetalles.version
inner join cpa01 on crm_presupuestosCompras.cod_provee=cpa01.cod_provee
group by crm_presupuestos.id_presupuesto,crm_presupuestos.version) compras on crm_presupuestos.id_presupuesto=compras.id_presupuesto and crm_presupuestos.version=compras.version
left join (
select crm_presupuestos.id_presupuesto, crm_presupuestos.version, sum(cast(crm_presupuestosDetalles.costo * crm_presupuestosDetalles.cantidad * crm_presupuestosDetalles.cantidad2 * crm_presupuestosDetalles.cantidad3 as decimal(18,2)) ) as importe
from crm_presupuestosDetalles inner join crm_presupuestos on crm_presupuestos.id_presupuesto=crm_presupuestosDetalles.id_presupuesto and crm_presupuestos.version=crm_presupuestosDetalles.version
group by crm_presupuestos.id_presupuesto,crm_presupuestos.version) costos on crm_presupuestos.id_presupuesto=costos.id_presupuesto and crm_presupuestos.version=costos.version
left join (
select crm_presupuestosPasados.id_presupuesto, crm_presupuestosPasados.version, sum(cast(gva12.importe as decimal(18,2))) as importe
from crm_presupuestosPasados inner join relacionesPedidos on crm_presupuestosPasados.talon_ped=relacionesPedidos.talon_ped and crm_presupuestosPasados.nro_pedido=relacionesPedidos.nro_pedido collate latin1_general_bin
inner join gva12 on relacionesPedidos.t_comp=gva12.t_comp and relacionesPedidos.n_comp=gva12.n_comp
group by crm_presupuestosPasados.id_presupuesto, crm_presupuestosPasados.version
) facturas on crm_presupuestos.id_presupuesto=facturas.id_presupuesto and crm_presupuestos.version=facturas.version
where
(crm_clientes.id_cliente between ??desdeCliente?? and ??hastaCliente?? or (??desdeCliente??=0 and ??hastaCliente??=0))
and crm_presupuestos.fecha_alta between ??desdeFecha?? and ??hastaFecha??
and (crm_presupuestos.id_estadoPresupuesto=??estadoPresupuesto?? or ??estadoPresupuesto??='')
and (crm_presupuestos.id_presupuesto between ??desdePresupuesto?? and ??hastaPresupuesto?? or (??desdePresupuesto??=0 and ??hastaPresupuesto??=0))
and crm_presupuestos.version between ??desdeVersion?? and ??hastaVersion??