Necesito conocer los ingresos por mercaderías y los ingresos por servicios. La manera simple seria extraer un balance de las cuentas por separado. Pero me gustaría conocer en un mismo informe el saldo de las dos cuentas y que me las compare en dos columnas. ¿Es posible?
lo que quieres obtener es un listado de cuentas con su saldo, pero en lugar de se muestre la información cuenta → saldo ¿quieres que se muestre cuenta — cuenta y debajo los saldos?
Lo mejor es hacer una consulta con las variables que necesites:
cuentas contables.
fecha inicial
fecha final.
Y mostrarlo por pantalla.
Se me ocurre otra idea, pero no sé si el trabajo que pueda llevar compensa.
como indica @andresramirez tienes la posibilidad de hacer un modelo financiero con las cuentas que necesitas (sólo esas) y obtienes la información sin desarrollar nada. Debes acordarte de que si añades nuevas cuentas de servicio o de mercaderías añadirlas al modelo financiero.
Bien @IvanFor hay que seguir tirantote de la lengua… ¿y como los distingues de los otros?.
¿Lo tienes bien parametrizado para el dato OITM.ItemType o los tienes tipificados en un grupo de artículo concreto?
¿y quien es el?
¿En que lugar se enamoró de ti?..
En fin algo asi dependiendo de como lo tengas te serviría.
select T3.SlpName Agente,
(select sum(INV1.LineTotal) from INV1 inner join OINV on INV1.Docentry=OINV.DocEntry where INV1.AcctCode like '70500%' and OINV.DocDate>='20210101' and OINV.DocDate<='20211231' and OINV.SlpCode=T0.SlpCode) as 'Ventas 1',
(select sum(INV1.LineTotal) from INV1 inner join OINV on INV1.Docentry=OINV.DocEntry where INV1.AcctCode like '70000%' and OINV.DocDate>='20210101' and OINV.DocDate<='20211231' and OINV.SlpCode=T0.SlpCode) as 'Ventas 2'
from OINV T0
inner join INV1 T1 on T0.DocEntry=T1.DocEntry
inner join OCRD T2 on T0.CardCode=T2.CardCode
inner join OSLP T3 on T0.SlpCode=T3.SlpCode
where T0.DocDate>='20180101' and T0.DocDate<='20181231' and t3.Memo='Activo'
group by T0.SlpCode, T3.SlpName, year(T0.DocDate)
order by T3.SlpName
El tema es que depende de tus datos… y como los tengas parametrizados…
Si vas por la opción de cuentas…
select
(select sum(INV1.LineTotal) from INV1 inner join OINV on INV1.Docentry=OINV.DocEntry where INV1.AcctCode in ('705000', '705008') and OINV.DocDate>='20210101' and OINV.DocDate<='20211231') as 'Articulos',
(select sum(INV1.LineTotal) from INV1 inner join OINV on INV1.Docentry=OINV.DocEntry where INV1.AcctCode in ('705028', '705031') and OINV.DocDate>='20210101' and OINV.DocDate<='20211231') as 'Servicios'
from OINV T0
inner join INV1 T1 on T0.DocEntry=T1.DocEntry
inner join OACT T2 on T1.AcctCode=T2.AcctCode
where T0.DocDate>='20210101' and T0.DocDate<='20211231' and t1.AcctCode in ('705000', '705008', '705028', '705031')
group by year(T0.DocDate)
Yo haría un análisis de como están creados los artículos de servicios y ver si lo puedo reorientar para usar OITM.ItemType y si además los tengo todos en un único grupo, doble opción de análisis hasta con las herramientas de la aplicación directamente en Análisis del volumen de negocios.